Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-对操作数使用集合差分时应包含1列_Mysql_Mysql Workbench - Fatal编程技术网

MySQL-对操作数使用集合差分时应包含1列

MySQL-对操作数使用集合差分时应包含1列,mysql,mysql-workbench,Mysql,Mysql Workbench,我有以下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”一词的一本书中至少出版过一本书的作者的姓名 我的想法是这样

我有以下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”一词的一本书中至少出版过一本书的作者的姓名

我的想法是这样做的设置差异。我试图通过使用以下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);

您应该能够在第一条SQL语句的WHERE子句中简单地使用NOT LIKE