如何使用 mySQL 内部连接 3 个表


How to inner join 3 tables using mySQL?

我正确地连接了两个表,如下所示

SELECT m.id as mid, c.id as cid FROM members m inner join companies c on m.id=c.id

然后我也想添加一个第三个表,但我无法让它工作。

SELECT m.id as mid, c.id as cid, u.id as uid FROM members m inner join companies c on m.id=c.id inner join users u on m.id=u.id

我在这里错过了什么?

将它们从内部连接切换到左连接。

如果使用内部联接,并且所有三个表中都不存在某个结果,则该结果将被排除,显示为失败/不返回结果。

SELECT m.id as mid, c.id as cid, u.id as uid 
FROM members m 
left join companies c on m.id=c.id 
left join users u on m.id=u.id

这应该可以解决您看到的所有问题。

您正在与用户和公司共享会员中的"id"列,这是您的意图吗?实际上,您的表应该具有不同的 ID,并且只在外键上连接。

例如

Members.id = 12345成员公司Fk = 45632

Companies.id = 45632

加入 members.companyfk 以 companies.id