0

我已经正确加入了两个表如下

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

我在这里想念什么?

4

2 回答 2

2

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

如果您使用内部联接,并且所有三个表中都不存在结果,则它将被排除在外,看起来失败/不返回结果。

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

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

于 2012-06-05T01:02:46.250 回答
0

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

例如

成员.id = 12345 成员.CompanyFk = 45632

公司.id = 45632

将 members.companyfk 加入到 Companies.id

于 2012-06-05T01:07:45.730 回答