好吧,我以前从未问过这个问题,但是这里有。
在我的PHP脚本中,我目前有一个查询,它检索threads_read
表中与用户ID匹配的所有线程(记录所有读取的线程ID,Unix时间戳和用户ID)。然后,我使用另一个查询来检索important_threads
表中包含线程ID的所有匹配行。
这可能是一个非常简单的问题,但我对MySQL(i)并不太熟悉,但我如何进行查询以检索important_threads
表中的所有NON匹配行? / p>
答案 0 :(得分:2)
您可以执行以下操作:
SELECT * FROM threads_read WHERE id NOT IN (SELECT id FROM important_threads)
这有点资源,但是它可以完成这项工作。
但我真的建议不要使用这种类型的数据库结构。只需标记一个名为“线程”的表格,该表格中有一列可以看到它是否被读取或重要,这将是一个更流畅的设计。
祝你好运!
答案 1 :(得分:2)
您可以在important_threads表上执行LEFT JOIN,只获取表中没有匹配项的行:
SELECT
a.*
FROM
threads_read a
LEFT JOIN
important_threads b ON a.id = b.id
WHERE
a.user_id = 14
AND
b.id IS NULL