简体   繁体   English

提高查询性能

[英]Increase query performance

I'm trying to optimize this query: 我正在尝试优化此查询:

SELECT post_id 
FROM wp_postmeta
WHERE meta_key = 'passenger_group_id'
AND meta_value in (SELECT post_id 
                   FROM wp_postmeta 
                   WHERE meta_key = 'group_event' AND meta_value = '14608')
AND post_id IN (SELECT post_id 
                FROM wp_postmeta 
                WHERE meta_value='Cancelled')
AND post_id NOT IN (SELECT ID 
                    FROM wp_posts 
                    WHERE post_status='trash') 

Any help would be greatly appreciated. 任何帮助将不胜感激。

you can use EXISTS clause alone and add NOT IN condition can be made NOT EXISTS 您可以单独使用EXISTS子句并添加NOT IN条件,可以使NOT EXISTS

select wp1.post_id 
from wp_postmeta wp1
WHERE meta_key = 'passenger_group_id'
and exists  ( select 1 FROM
              wp_postmeta wp2
              where ( (wp2.meta_key = 'group_event' AND wp2.meta_value = '14608' ) or wp2.meta_value ='Cancelled' )
              and wp2.post_id = wp1.meta_value 

            )
and not exists ( select 1 from
                 wp_posts p
                 on p.id = wp1.post_id
                 and p.post_status = 'trash')
                )

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM