MySQL - 使用 Set Difference with Operand 应该包含 1 列

MySQL - Using Set Difference with Operand should contain 1 Column

我有以下 MYSQL 查询工作:

SELECT 
    a.author_name, COUNT(*)
FROM
    publication p,
    authored a
WHERE
    a.pubkey = p.pubkey
        AND p.pubkey LIKE '%/asd/%'
GROUP BY a.author_name
HAVING COUNT(*) >= 1;

上面的查询是在包含单词"asd"的一本书中显示至少出版过一本书的作者姓名。

我的想法是这样来做set difference。我试图通过使用以下 sql 语句找到尚未出版包含单词 "asd" 的书的作者:

SELECT 
    a.author_name
FROM
    author a,publication p
WHERE
   a.pubkey = p.pubkey AND a.author_name NOT IN (SELECT 
            a1.author_name, COUNT(*)
        FROM
            publication p1,
            author a1
        WHERE
            a1.pubkey = p1.pubkey
                AND p1.pubkey LIKE '%/asd/%'
        GROUP BY a1.author_name
        HAVING COUNT(*) >= 1);

但出于某种原因,我不断收到此错误“操作数应包含 1 列,我找不到错误。

谢谢。

尝试从内部查询中删除计数。可能是这样的..

SELECT 
    a.author_name
FROM
    author a,publication p
WHERE
   a.pubkey = p.pubkey AND a.author_name NOT IN (SELECT 
            a1.author_name
        FROM
            publication p1,
            author a1
        WHERE
            a1.pubkey = p1.pubkey
                AND p1.pubkey LIKE '%/asd/%'
        GROUP BY a1.author_name
        HAVING COUNT(*) >= 1);