我正在尝试加入3个包含用户值的表 - 他们的ID和用户名,以及包含用户个人资料图片信息的表engine4_storage_files
。如果用户没有上传它的个人资料图片,sf
表中没有记录 - 但我想查询所有用户,无论天气是否上传图片。
SELECT p.user_id as gledalac, sf.storage_path,
u.displayname, u.username
FROM engine4_pregledi p JOIN
engine4_storage_files sf JOIN
engine4_users u
WHERE p.subject_id = 1
AND p.user_id = u.user_id
AND sf.parent_id = u.user_id
AND sf.parent_type = 'user'
AND sf.type = 'thumb.icon'
AND sf.parent_file_id = u.photo_id
order by datum desc limit 10
此查询返回3个用户的图像路径,但实际上有4个用户要显示,但第4个用户没有个人资料图片 - 所以他不包含在查询结果中。
有没有办法将第4位没有个人资料图片的用户包含在查询结果中?
答案 0 :(得分:3)
改为使用LEFT JOIN
,
SELECT p.user_id as gledalac,
sf.storage_path,
u.displayname,
u.username
FROM engine4_pregledi p
LEFT JOIN engine4_users u
ON p.user_id = u.user_id
LEFT JOIN engine4_storage_files sf
ON sf.parent_id = u.user_id AND
sf.parent_type = 'user' AND
sf.type = 'thumb.icon' AND
sf.parent_file_id = u.photo_id
WHERE p.subject_id = 1
ORDER BY datum DESC
LIMIT 10
要充分了解联接知识,请访问以下链接: