主表:
(行程)

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”?-LMLPHP

关于mysql - 如何在两个表联接中使用“where”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48498000/

10-11 05:02