Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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
在多个NOT-INs上优化MySQL查询_Mysql_Sql - Fatal编程技术网

在多个NOT-INs上优化MySQL查询

在多个NOT-INs上优化MySQL查询,mysql,sql,Mysql,Sql,有没有办法优化这个sql语句? 也许是什么 SELECT id, name FROM item WHERE id NOT IN ( SELECT id FROM itemlock ) AND id NOT IN ( SELECT id FROM itemlog ) 谢谢使用左加入 SELECT a.* FROM item a LEFT JOIN itemLock b ON a.ID = b.ID LEFT JOI

有没有办法优化这个sql语句? 也许是什么

SELECT id, name
FROM item
WHERE id NOT IN (
    SELECT id 
FROM itemlock
) AND id NOT IN (
SELECT id
    FROM itemlog
)

谢谢

使用
左加入

SELECT  a.*
FROM    item a
        LEFT JOIN itemLock b
            ON a.ID = b.ID
        LEFT JOIN itemLog c
            ON a.ID = c.ID
WHERE   b.ID IS NULL AND 
        c.ID IS NULL

您也可以使用UNION,如下所示:

SELECT id, name FROM item 
WHERE id NOT IN (
   SELECT id  FROM itemlock UNION SELECT id FROM itemlog
)
试试这个:

SELECT id, NAME FROM item i 
LEFT JOIN (SELECT id FROM itemlock 
    UNION 
    SELECT id FROM itemlog) AS A ON i.id = A.id 
WHERE A.id IS NULL;

我试图运行这个,但不幸的是,这比我原来的脚本慢。工会可能会让事情变得更慢-(