用SQL连接三个表

时间:2020-09-23 10:30:45

标签: sql

我有三个表:

  1. 客户表:它具有ID和名称。
  2. CAR表:它具有自己的ID和汽车名称
  3. CAR-owner表:它具有一个id_car(与CAR ID相同)和id_owner(与CAR_ID相同) 作为客户端ID)

我要选择客户端名称的客户端名称,CAR名称。

我已经尝试过了,但是我不知道自己在做什么错

SELECT 
    CLIENT.name, CAR.name, CLIENT.id
        FROM CLIENT 
        LEFT JOIN CAR-owner ON CLIENT.id = CAR-owner.id_owner 
        LEFT JOIN CAR ON CAR.id = CAR-owner.id_car 
        WHERE CLIENT.id = ?;

1 个答案:

答案 0 :(得分:0)

只需加入:

select cl.name client_name, ca.name car_name
from client cl
inner join car_owner co on co.id_owner = cl.id
inner join car ca on ca.id = cl.id_car
where cl.id = ?

我强烈建议不要在表名中使用诸如-之类的字符。这需要在您使用它的所有地方都引用该标识符:

select cl.name client_name, ca.name car_name
from client cl
inner join `car-owner` co on co.id_owner = cl.id
inner join car ca on ca.id = cl.id_car
where cl.id = ?

我不确定这里是否确实需要left join,因此我使用了inner join。如果需要,可以将其还原。

相关问题