簡體   English   中英

MySQL查找沒有帖子的作者(一對多關系)

[英]MySQL find authors without posts (one-to-many relationship)

我有一個MySQL問題:

我有一對多關系的兩個表格(帖子和作者)(因為每個帖子都是由一位作者撰寫的,並且一位作者可以寫多個帖子)。

所以這是表格:

作者:id:BIGINT,名稱:VARCHAR(255)帖子:id:BIGINT,author_id:BIGINT,正文:TEXT。

如何檢索所有沒有帖子的作者?

我一直在嘗試做的是:

SELECT * 
FROM Authors 
WHERE id NOT IN (SELECT author_id 
                 FROM Posts 
                 GROUP BY author_id);

但這需要很長時間!!!

在兩個表中,有300,000位作者和1,000,000個帖子!

有什么更快的方法嗎?

多謝你們!

看到這個問題:
MySQL-查詢所有用戶而無需約會

答案應該是相同的。

另外,請確保您具有ID和Author_ID上的索引。

SELECT *
FROM Authors
LEFT JOIN Posts ON (Authors.id = Posts.author_id)
WHERE Posts.author_id IS NULL

歸功於@john作為第一個正確答案:)

也許這個嗎?

SELECT * FROM Authors a
WHERE NOT EXISTS (SELECT *
                  FROM Posts p
                  WHERE p.author_id=a.id)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM