如何从两个表中查询第三个条件

时间:2014-04-14 11:39:16

标签: php mysql sql

我有三张桌子: 地点 USER_LOCATION 图像

我需要进行一个查询,将用户喜欢的所有位置与第三张表图像中的位置图像一起使用。

现在我设法做到了:

"SELECT Location.* FROM Location LEFT JOIN UserLocation ON Location.id = UserLocation.location_id WHERE UserLocation.user_id=:user_id:

但它只会检索用户喜欢的位置。现在我需要每个位置的图像。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您需要将条件移至on子句:

SELECT l.*, (ul.user_id is not null) as hasUser
FROM Location l LEFT JOIN
     UserLocation ul
     ON l.id = ul.location_id and
        ul.user_id = :user_id:

where子句以一种将LEFT JOIN转换为INNER JOIN的方式过滤输出。