帮助将SQL嵌套子查询转换为连接查询,以实现mysql 4.0兼容性

帮助将SQL嵌套子查询转换为连接查询,以实现mysql 4.0兼容性,sql,mysql,left-join,self-join,nested-queries,Sql,Mysql,Left Join,Self Join,Nested Queries,我有一个嵌套的SQL查询: SELECT DISTINCT(topic_id) FROM bb_posts WHERE topic_id NOT IN ( SELECT topic_id FROM bb_posts WHERE poster_id = $user_id AND post_status = 0 ) ORDER BY post_time DESC 我的Web服务器运行MySQL 4.0,它不允许嵌套查询。一些SQL专家可以使用连接行话建议相同的查询吗?我试了又试了又

我有一个嵌套的SQL查询:

SELECT DISTINCT(topic_id)
FROM bb_posts 
WHERE topic_id NOT IN ( 
  SELECT topic_id FROM bb_posts 
  WHERE poster_id = $user_id AND post_status = 0 ) 
ORDER BY post_time DESC

我的Web服务器运行MySQL 4.0,它不允许嵌套查询。一些SQL专家可以使用连接行话建议相同的查询吗?我试了又试了又试。。。但我想不出来。感觉哑巴。

假设topic\u id不可为空,您可以执行以下操作:

SELECT DISTINCT(T1.topic_id)
FROM bb_posts As T1
    Left Join bb_posts As T2
        On T2.topic_id = T1.topic_id
            And T2.poster_id = $user_id
            And T2.post_status = 0
Where T2.topic_id Is Null
ORDER BY T1.post_time DESC

我不太清楚你的要求是什么,但通过查看你的问题,我认为这应该足够了

SELECT DISTINCT(topic_id) 
FROM bb_posts 
WHERE poster_id <> $user_id OR post_status <> 0 
ORDER BY post_time DESC
选择不同的(主题id)
来自bb_的帖子
其中poster\u id$user\u id或post\u状态为0
邮购时间描述

应该是
posterid$user\u id还是post\u status 0
?基本要求是:我想要一个用户没有回复或自己没有开始的主题列表。每个主题至少有一个或多个带有主题id和用户id的帖子。您的答案也将返回用户已回复的帖子。是的,Thomas,您是对的。编辑了我的答案。我猜试图快速使用枪支会导致一个错误P