主表:
(行程)
id | name
1 | USA
2 | Europe
3 | Asia
儿童:
(plane)
id | trip_id | name | other
1 | 1 | aaa | w
2 | 1 | bbb | e
3 | 3 | ccc | rr
(boat)
id | trip_id | name
1 | 2 | jjj
2 | 2 | kkk
3 | 3 | lll
如果我想乘飞机旅行,我可以:
SELECT trip.* FROM trip INNER JOIN plane ON plane.trip_id = trip.id
如果我想乘船旅行,我可以:
SELECT trip.* FROM trip INNER JOIN boat ON boat.trip_id = trip.id
但是,如何在一个查询中查询所有飞机或船只(或两者)的行程呢?
最佳答案
您可以简单地使用左连接,如下所示select trip.*, isnull(plane.name, '-') as PlaneName,isnull(boat.name, '-') as BoatName from tripleft join plane ON plane.trip_id = trip.idleft JOIN boat ON boat.trip_id = trip.id
它将返回下表,可以随意使用这3个表中的任何字段。。。
关于mysql - 如何在两个表联接中使用“where”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48498000/