【发布时间】:2021-05-08 15:17:18
【问题描述】:
我的主表包含 DEPARTURE_CITY、ARRIVAL CITY 等字段。另一个表 secondry_details 包含 city_code 和 city_name。
我想要像这样的输出 Departure_city,City_code,Arrival_city,City_code
下面的查询返回正好两次的记录,像交叉连接一样工作
'''选择m.Departure_city,s1.City_code作为departure_city_code,m.Arrival_city,s2.Arrival_city_code 从主表 m
左加入 secondry_details1 s1 ON m.Departure_city=s1.city_name
左加入 secondry_details1 s2 ON m.Arrival_city=s2.city_name'''
请帮忙。
【问题讨论】:
-
不应该将
left join secondry_details1 s2 ON m.Departure_city=s2.city_name更改为left join secondry_details1 s2 ON m.Arrival_city=s2.city_name'''吗?您也可能希望按主表对其进行分组。请提供一个类似dba.stackexchange.com/help/minimal-reproducible-example的例子。 -
@AdamTokarski,谢谢你提醒我,我发错了。你现在可以试试吗
-
请提供一些小脚本来创建这些表,插入量最少。然后我们可以讨论如何更改您的查询以实现您想要的。您可以使用我之前消息中的链接中提到的一些 db fiddle。
-
@AdamTokarski ,这里是创建表 travel_master (departure_city varchar(30),arrival_city varchar(30)) 的脚本;插入到 travel_master values('London','Chicago');create table secondry_details1 ( city_name varchar(30),city_code int) ;插入 secondry_details1 值('London',110),('Chicago',120);
-
你使用什么数据库(mssql、postgres、mysql等)?
标签: sql join duplicates left-join