Mysql 即使一个表为空,也要连接三个表
我试图从三个表中获取值,即使其中一个表是空的。 因为我可以使用if-else语句,这取决于following.followind行是否为空Mysql 即使一个表为空,也要连接三个表,mysql,sql,Mysql,Sql,我试图从三个表中获取值,即使其中一个表是空的。 因为我可以使用if-else语句,这取决于following.followind行是否为空 SELECT user.id, user.username,user.email, userdetails.profile_img, following.follow_id FROM user JOIN userdetails ON user.id = userdetails.user_id JOIN following ON user.id = fo
SELECT user.id, user.username,user.email, userdetails.profile_img, following.follow_id
FROM user
JOIN userdetails ON user.id = userdetails.user_id
JOIN following ON user.id = following.follow_id
GROUP BY user.id;
目前,它只在以下行上有值时才给我值。follow\u id
。
但是,即使有一个空表,我也能够从用户id获得所有结果
有什么线索吗?用“左连接”替换“连接”,这意味着“内部连接” 是的,您需要使用外部联接来完成此操作
其原因是,当您只说JOIN时,这实际上被解释为一个内部联接,在这种情况下,所有表中都需要有一个匹配项。现在,您在这3个表中使用一个内部联接。这意味着您将只返回在其他表中具有相应行的行。也就是说,如果给定的user.id没有相应的follow.follow\u id和userdetails.user\u id,则该行将被删除 相反,如果您使用从用户到其他表的左连接(左外部连接),我认为您应该得到所需的结果 有关内部联接与外部联接的更多信息,此问题可能会有所帮助:
我想您需要一个
外部连接。