好吧,我以前从来没有在这里问过问题,但是这里去。
在我的 PHP 脚本中,我目前有一个查询,用于检索与threads_read
表中用户 ID 匹配的所有线程(记录所有读取的线程 ID、Unix 时间戳和用户 ID)。important_threads
然后,我使用另一个查询来检索包含线程 ID的表中的所有匹配行。
这可能是一个非常简单的问题,但我对 MySQL(i) 不太熟悉,但我将如何进行查询以检索important_threads
表中所有不匹配的行?
您可以执行以下操作:
SELECT * FROM threads_read WHERE id NOT IN (SELECT id FROM important_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