0

同じものに関連する3つのテーブルが必要です。

たとえば、1つにはユーザー情報があり、1つにはそのユーザーのページ情報があり、もう1つにはそのユーザーのページオプションがあります。

すべてuser_idを介して接続されています

これを行うことは可能です。

SELECT * 
FROM users 
LEFT JOIN page_info ON users.id=page_info.user_id 
RIGHT JOIN page_settings ON user.id=page_settings.user_id 
WHERE users.id=$id

または、2つのクエリを使用することに敗北しますか

ありがとう

4

2 に答える 2

3

LEFTaとRIGHT外部結合が何をするのか誤解していると思います。SQL結合の視覚的な説明を読んでください。

あなたの場合、テーブルが最初に来る(つまり、他のすべての「左側」にある)ので、両方の結合を外部結合usersにしたいのではないかと思います。LEFTあれは:

SELECT *
FROM   users 
  LEFT JOIN page_info     ON users.id = page_info.user_id 
  LEFT JOIN page_settings ON users.id = page_settings.user_id 
WHERE  users.id = $id
于 2012-06-29T10:26:20.927 に答える
1

はい、できます。

http://dev.mysql.com/doc/refman/5.0/en/join.html

于 2012-06-29T09:40:49.000 に答える