带有WHERE的MySQL LEFT JOIN返回NULL

时间:2015-02-19 19:39:00

标签: mysql

尝试加入几个表以向用户提供他订阅此会话的其他用户的一些信息。 有一个其他用户的列表及其图片

这有效:

SELECT DISTINCT profile_picupload.imageFull, goals_list.goal, goal03.other, 
users.username, users.email  FROM profile_picupload 
JOIN anal_muses 
ON anal_muses.username = profile_picupload.username 
JOIN goal03 ON goal03.username = anal_muses.username 
JOIN goals_list ON goal03.goal=goals_list.id 
JOIN users ON users.email = anal_muses.username

它给了我想要的清单。

但是 - 我只需要来自anal_muses的列表 - 所以我将代码更改为:

SELECT DISTINCT profile_picupload.imageFull, goals_list.goal, goal03.other,
users.username, users.email  FROM profile_picupload 
right  JOIN anal_muses 
ON anal_muses.username = profile_picupload.username 
AND  anal_muses.sessionId='$sessionId'
JOIN goal03 ON goal03.username = anal_muses.username 
JOIN goals_list ON goal03.goal=goals_list.id 
JOIN users ON users.email = anal_muses.username

table profile_picupload - 每个用户只能保存一张图片 表anal_musers为每个用户保留许多行(取决于他订阅的人数) 所以当我添加AND anal_muses.sessionId =' $ sessionId'我需要将第一个连接更改为RIGHT JOIN

但现在我得到一个包含profile_picupload .imageFull的NULL值的列表 .....

有办法解决这个问题吗?

谢谢: - )

0 个答案:

没有答案