Mysql SQL三重联接,其中表中的某些行可能不存在

Mysql SQL三重联接,其中表中的某些行可能不存在,mysql,Mysql,我有一个包含主要行的表,我想要所有这些行。然后有两个表可能没有匹配的行,但是如果这些表没有匹配的行,我仍然需要主表中的行 此查询有效,但如果所有3个表中都没有一行,则不会返回任何内容。我使用mysql和php SELECT PS_Info.* , PS_Guides.Guide, PS_User.UserID FROM PS_Info JOIN PS_Guides ON PS_Info.ID = PS_Guides.InfoID JOIN PS_User ON PS_Info.ID = PS

我有一个包含主要行的表,我想要所有这些行。然后有两个表可能没有匹配的行,但是如果这些表没有匹配的行,我仍然需要主表中的行

此查询有效,但如果所有3个表中都没有一行,则不会返回任何内容。我使用mysql和php

SELECT PS_Info.* , PS_Guides.Guide, PS_User.UserID FROM PS_Info 
JOIN PS_Guides ON PS_Info.ID = PS_Guides.InfoID 
JOIN PS_User ON PS_Info.ID = PS_User.InfoID 
WHERE PS_Info.GameID = :ID AND PS_User.UserID = :UserID

我正在尝试显示PS_信息中的列表。然后,如果用户将这些项设置为hidden(PS_user=UserID,InfoID),我想隐藏其中的一些项。如果PS_用户中没有任何内容,则他们没有将此项设置为隐藏,因此我希望显示它。PS_指南包含关于列表中每个项目的额外信息。并非所有项目都包含额外信息,因此如果此表中没有行,则我不会显示它

您正在寻找“左连接”

SELECT PS_Info.* , PS_Guides.Guide, PS_User.UserID   FROM PS_Info 
LEFT JOIN PS_Guides ON PS_Info.ID = PS_Guides.InfoID 
LEFT JOIN PS_User ON PS_Info.ID = PS_User.InfoID 
WHERE PS_Info.GameID = :ID AND PS_User.UserID = :UserID

您正在寻找“左连接”

SELECT PS_Info.* , PS_Guides.Guide, PS_User.UserID   FROM PS_Info 
LEFT JOIN PS_Guides ON PS_Info.ID = PS_Guides.InfoID 
LEFT JOIN PS_User ON PS_Info.ID = PS_User.InfoID 
WHERE PS_Info.GameID = :ID AND PS_User.UserID = :UserID

这解决了问题,但还没有完全解决。我还必须添加其中PS_Info.GameID=:ID和PS_User.UserID=:UserID或PS_User.UserID为空这解决了问题,但还没有完全解决。我还必须添加PS_Info.GameID=:ID和PS_User.UserID=:UserID或PS_User.UserID为NULL的位置