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
加入
子查询
考虑向上投票:)