获取用户未加入的最近主题

时间:2011-08-21 10:50:32

标签: mysql

我们试图简单地列出有关用户尚未加入的表中的最新主题。

下面的代码不起作用(显示用户已加入的新线程线程),但显示我们正在使用的表:

SELECT t.*, jt.*
FROM thread t 
INNER JOIN joined_threads jt ON jt.thread_id = t.unique_id
WHERE t.owner != '$user_id'
AND jt.saved_by != '$user_id' 
GROUP BY t.unique_id

二手表:

THREAD:
unique_id
owner
title
content
date

JOINED_THREADS:
saved_by
thread_id

我认为对大多数人来说这很容易:)

2 个答案:

答案 0 :(得分:1)

如果我理解你的需要

SELECT t.*, jt.*
FROM thread t 
LEFT JOIN joined_threads jt ON jt.thread_id = t.unique_id AND jt.saved_by = '$user_id' 
WHERE t.owner <> '$user_id' AND jt.thread_id is NULL
GROUP BY t.unique_id

(未经测试)。顺便说一句你需要什么jt。*,总是NULL

答案 1 :(得分:1)

SELECT t.*
FROM thread t
WHERE t.owner <> '$user_id'
  AND NOT EXISTS
      ( SELECT * 
        FROM joined_threads jt
        WHERE jt.thread_id = t.unique_id
          AND jt.saved_by = '$user_id' 
      )