如果存在,则关联

时间:2014-02-12 17:27:09

标签: php mysql sql

假设我有两个表:usersuser_location_data。我需要获取users内的所有记录,并将其与user_location_data中的匹配数据(如果存在)相关联 - 但如果不存在则仍然获取用户数据。示例输出:

User ID | Name     | Location Data
--------|----------|--------------------------
      2 | John     | 
      3 | Jane     | Lorem Ipsum 
      6 | Harry    | 
      9 | Lloyd    | Lorem Ipsum
     22 | Patricia | Lorem Ipsum

这可以通过简单的循环和多个查询轻松完成,但这似乎对我来说有点不安。常规关系查询(例如SELECT * FROM users u, user_location_data uld WHERE u.user_id = uld.user_id)将仅获取具有匹配位置数据记录的用户。有什么方法可以用一个查询来做到这一点吗?

1 个答案:

答案 0 :(得分:4)

使用LEFT JOIN

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

SELECT * FROM users u LEFT JOIN user_location_data uld ON u.user_id = uld.user_id