你可以左右加入mysql吗?

时间:2012-06-29 09:36:12

标签: php mysql join

我需要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个查询

由于

2 个答案:

答案 0 :(得分:3)

我认为您误解了LEFTRIGHT外部联接的作用:阅读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

答案 1 :(得分:1)