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

标签 php mysql sql

我有三张表: 地点 用户位置 图片

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

现在我设法做到了这一点:

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

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

最佳答案

您需要将条件移至 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

关于php - 如何从两个表中查询第三个表的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23059125/

相关文章:

php - 无法使用 array_merge 合并变量 : undefined index

python - 在 python 2.7.5 中使用来自 cx_Oracle 模块的函数 callproc 执行脚本

c# - 如何表示与 Entity Framework 的一对多关系?

mysql - 向数据库中插入一条新数据并获取id

mysql - 在每一行后显示总和

php - mcrypt_encrypt 的 32 个字符的 PHP AES key

php - 如何使用 php 读取文本文件并将这些值插入数据库

php - 如何在查询中正确返回ASC

php - 如何在一组 PHP MySQL 选择查询后插入水平线?

Python:从数据库列查询干净的字符串值或清理 View /模板上的字符串是否更快?