mysql - 表中某些行可能不存在的 SQL 三重连接

标签 mysql

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

此查询有效,但如果所有 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_Info 中的列表。然后我想隐藏其中一些项目,如果用户将它们设置为隐藏(PS_User = UserID,InfoID)。如果 PS_User 中没有任何内容,那么他​​们没有将此项设置为隐藏,所以我想显示它。 PS_Guides 包含有关列表中每个项目的额外信息。并非所有项目都包含额外信息,因此如果此表中没有行,那么我不会显示它。

最佳答案

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

关于mysql - 表中某些行可能不存在的 SQL 三重连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342846/

相关文章:

mysql - 获取一年内完成的数据

javascript - 在 Node.js 中进行动态查询的方法

php - 如何将两个数组按相同的顺序排列?

php - 如何解决这个模棱两可的问题?

mysql - Mysql中的低优先级查询

mysql - 小花 2.3.4 : MySQL query to JSON

mysql表: index vs primary

mysql - mysql单查询如何删除有外键约束的记录

php - 查询似乎返回结果,但包含空值

mysql - SQL索引中<id下划线数字>是什么意思