假设我有两个表: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)只会获取具有匹配位置数据记录的用户。有没有什么方法可以用一个查询来完成?

最佳答案

使用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

关于php - 关联(如果存在),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21735138/

10-11 05:14