0

我需要 3 个与同一事物相关的表。

例如,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

我认为您误解了 aLEFTRIGHT外部联接的作用:阅读A Visual Explanation of SQL Joins

在您的情况下,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

Yes, you can.

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

于 2012-06-29T09:40:49.000 回答