我有2张桌子。 位置和路线。在路由表中,我有from
和to
字段都映射到位置表。
位置:location_id
,location_name
路线:route_id
,route_from
,route_to
由于route_from
和route_to
都与location
表映射,因此简单地联接该表并不能给我结果。在以下查询中尝试过,但无法获取所需的结果。如何通过与route_from
表进行映射来获取route_to
和location
的名称?帮帮我!
SELECT * FROM bus_route b, bus_location a
WHERE a.bus_location_id = b.route_from AND a.bus_location_id = b.route_to
答案 0 :(得分:1)
在查询中使用AND
代替OR
。
SELECT * FROM bus_route b, bus_location a
WHERE a.bus_location_id = b.route_from OR a.bus_location_id = b.route_to
答案 1 :(得分:1)
您需要为每个相关列执行位置表的联接,并可以通过将select query中的*替换为必填列来选择必填列值
SELECT * FROM bus_route b
INNER JOIN bus_location a ON a.bus_location_id = b.route_from
INNER JOIN bus_location c ON c.bus_location_id = b.route_to