我正确地连接了两个表,如下所示
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