Mysql 即使一个表为空,也要连接三个表

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

我试图从三个表中获取值,即使其中一个表是空的。 因为我可以使用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 = following.follow_id 
GROUP BY user.id;
目前,它只在以下行
上有值时才给我值。follow\u id
。 但是,即使有一个空表,我也能够从用户id获得所有结果


有什么线索吗?

用“左连接”替换“连接”,这意味着“内部连接”

是的,您需要使用外部联接来完成此操作


其原因是,当您只说JOIN时,这实际上被解释为一个内部联接,在这种情况下,所有表中都需要有一个匹配项。

现在,您在这3个表中使用一个内部联接。这意味着您将只返回在其他表中具有相应行的行。也就是说,如果给定的user.id没有相应的follow.follow\u id和userdetails.user\u id,则该行将被删除

相反,如果您使用从用户到其他表的左连接(左外部连接),我认为您应该得到所需的结果

有关内部联接与外部联接的更多信息,此问题可能会有所帮助:

我想您需要一个
外部连接。