好吧,我以前从来没有在这里问过问题,但在这里。
在我的 PHP 脚本中,我当前有一个查询,用于检索与threads_read
表中的用户 ID 匹配的所有线程(记录所有读取线程 ID、Unix 时间戳和用户 ID)。然后,我使用另一个查询来检索包含线程 ID 的important_threads
表中的所有匹配行。
这可能是一个非常简单的问题,但我不太熟悉 MySQL(i),但是我将如何进行查询来检索important_threads
表中所有 NON 匹配行?
你可以做这样的事情:
SELECT * FROM threads_read WHERE id NOT IN (SELECT id FROM important_threads)
这有点资源繁重,但它可以完成工作。
不过,我真的建议不要使用这种类型的数据库结构。简单地标记一个名为"threads"的表,该表将有一个列以查看它是否被读取或重要将是一个更流畅的设计。
祝你好运!
您可以在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