php - SQL 连接 QUERY 多个表和 SELECT

标签 php mysql sql database

我构建了以下查询,

        SELECT
        posts.id,
        posts.useraid,
        posts.useradn,
        posts.title,
        posts.createdate,
        posts.forumid,
        posts.type,
        posts.totalreplys,
        users.photo AS creatorphoto
    FROM posts
    JOIN users ON(users.id = posts.useraid)
    WHERE posts.forumid IN(
        SELECT subscribe.forumid AS fsub
        FROM subscribe  
        WHERE subscribe.useraid = '$myid'
    ) AND
    posts.forumid IN(
        SELECT forums.id
        FROM forums
        WHERE forums.relatedto=fsub
    )
    AND posts.type='post' 
    ORDER BY posts.timee DESC LIMIT 20

没有这部分代码也能完美运行

AND
    posts.forumid IN(
        SELECT forums.id
        FROM forums
        WHERE forums.relatedto=fsub
    )

但是,我需要查询从他订阅的所有论坛中选择所有帖子,包括子论坛帖子。

最佳答案

'fsub' 在这里没有范围,它在您的查询中此时甚至不存在:

posts.forumid IN(
    SELECT forums.id
    FROM forums
    WHERE forums.relatedto=fsub
)

我相信你需要使用 UNION。

关于php - SQL 连接 QUERY 多个表和 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15350438/

相关文章:

php - INNER JOIN 不会产生任何行

php - 从具有所有这些详细信息的多对多表中选择项目...正确的解决方案?

php - 2 来自同一张表的 SQL 查询

SQL、MVC、 Entity Framework

SQL Server - 异步查询执行

php - 使用自定义比较器在 PHP 数组中搜索

php - 从 cURL 获取内容类型

sql - MySQL 运行时生成的 View

MySQL 日期时间案例

sql - 更新插入是否违反单一职责原则?