我需要确定哪个用户(来自第二个表)发布了第一个表中的图像以及特定用户是否对照片进行了评级(来自第三个表)。
要传递给php页面和mysql查询的数据是
我尝试过的Mysql查询如下:
SELECT images.*, users.name, likes.user
FROM images
INNER JOIN users
ON users.id = images.user
LEFT JOIN likes
ON likes.user = '22'
WHERE images.pic_name = 'pic1'
LIMIT 1
表格图片:
id | pic_name | user
-------------------------------
1 | Pic1 | 11
2 | Pic2 | 22
3 | Pic3 | 33
表用户:
id | name | status
--------------------------------
11 | name 1 | 1
22 | name 2 | 1
33 | name 3 | 1
表喜欢:
id | pic_name | user
----------------------------
1 | pic 1 | 22
用户“22”和“Pic1”的结果应如下所示:
id | name | user
-----------------------------------
1 | name 1 | 22
用户“11”(此用户未评级图片)和“Pic1”的结果应如下所示:
id | name | user
-----------------------------------
1 | name 1 | null
什么是mysql查询才适合并为此提供解决方案?
答案 0 :(得分:1)
似乎你在正确的轨道上,你只是选择了一些奇怪的字段,并且在左连接中缺少与图片名称匹配的条件;
SELECT images.id, users.name, likes.user
FROM images
JOIN users
ON users.id = images.user
LEFT JOIN likes
ON likes.pic_name = images.pic_name
AND likes.user = 22
WHERE image.pic_name = 'pic1';