0

以下のように2つのテーブルを正しく結合しました

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

そして、3番目のテーブルも追加したかったのですが、うまくいきません。

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

それらを内部結合から左結合に切り替えます。

内部結合を使用し、結果が 3 つのテーブルすべてに存在しない場合、その結果は除外され、失敗したか結果が返されないように見えます。

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 メンバー.カンパニーFk = 45632

Companies.id = 45632

members.companyfk を company.id に結合

于 2012-06-05T01:07:45.730 に答える