Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 重写查询以避免不在并提高性能_Mysql_Sql - Fatal编程技术网

Mysql 重写查询以避免不在并提高性能

Mysql 重写查询以避免不在并提高性能,mysql,sql,Mysql,Sql,我想选择所有没有关联样式的图片。我有一个样式表,可以将样式与其图片进行映射。以下是我现在提出的问题: SELECT picture.id, picture.caption, picture.lowresimageurl, picture.medresimageurl FROM instagram_shop_picture picture INNER JOIN instagram_shop shop ON shop.

我想选择所有没有关联样式的图片。我有一个样式表,可以将样式与其图片进行映射。以下是我现在提出的问题:

SELECT picture.id, picture.caption, picture.lowresimageurl, picture.medresimageurl
                    FROM instagram_shop_picture picture 
                    INNER JOIN instagram_shop shop ON shop.id = picture.shop_id
                    WHERE picture.deletedAt IS NULL
                        AND picture.isLocked = 0
                        AND picture.isShown = 1
                        AND picture.isTestimonial = 0
                        AND shop.deletedAt IS NULL
                        AND shop.isLocked = 0
                        AND shop.expirydate IS NOT NULL 
                        AND shop.expirydate > now()
                        AND picture.id NOT IN (SELECT style.picture_id FROM instagram_picture_style style)
由于某些原因,此查询运行缓慢。我如何在不使用NOT的情况下重写它

SELECT picture.id, picture.caption, picture.lowresimageurl, picture.medresimageurl
                    FROM instagram_shop_picture picture 
                    INNER JOIN instagram_shop shop ON shop.id = picture.shop_id
                    left join instagram_picture_style style on style.picture_id = picture.id
                    WHERE picture.deletedAt IS NULL 
                        AND picture.isLocked = 0
                        AND picture.isShown = 1
                        AND picture.isTestimonial = 0
                        AND shop.deletedAt IS NULL
                        AND shop.isLocked = 0
                        AND shop.expirydate IS NOT NULL 
                        AND shop.expirydate > now()
                        and style.picture_id is null 
instagram\u picture\u style
表的子查询更改为左加入,并添加一个新条件
style.picture\u id为null


加入
子查询

考虑向上投票:)