更新了说明,以便于理解。
我已经很长时间没有使用SQL语句了,看起来简单的事情让我失望^^
我有一张桌子"运输"其中包含以下列:
第二张表"位置"包含以下列:
transports.locations_fromid和transports.locations_toid引用locations.id(外键)
问题: 1)我如何创建一个视图,它显示了所有(*)来自交通工具以及原始城市和目的地城市。
2)假设我们在传输表中有n个传输使用相同的transport_number。如何创建一个视图,将所有传输与所有被触及的城市区别开来。
示例行: 123456,汉堡,纽约,纽约,华盛顿,华盛顿,丹佛,10,000km (transportnumber,fromid,toid,fromid,toid,fromid,toid,sum(distance)
在这个例子中,我们在具有相同transport_number
的表传输中聚集了3行我觉得我的问题的答案很简单,但我不能自己谷歌。
非常感谢 亚当
答案 0 :(得分:0)
你的第一个问题: 我相信这应该有用
SELECT transports.*, FromCity.City, ToCity.City FROM transports
LEFT OUTER JOIN Locations FromCity ON transports.fromid = Locations.id
LEFT OUTER JOIN Locations ToCity ON transports.toid = Locations.id
第二个问题中的'1122'是传输表上的ID吗?
答案 1 :(得分:0)
SELECT
transports.*, FromCity.adress_city SOURCE, ToCity.adress_city DESTINATION
FROM
transports
LEFT OUTER JOIN
locations FromCity
ON
transports.locations_fromid = FromCity.id
LEFT OUTER JOIN
locations ToCity
ON
transports.locations_toid = ToCity.id
这解决了我的第一个问题。感谢@happyChap