Вычисление количества постов с метаполем и таксономией по пользовательскому запросу SQL в базе данных Wordpress - PullRequest
0 голосов
/ 05 марта 2019

У меня есть большая база данных с постами таксономии «учреждения» и метаполя «цена».Мне нужно рассчитать количество бесплатных заведений, т.е. имея цену = '0'.Собственные запросы WP слишком медленные (30 секунд), поэтому я изобрел пользовательский:

SELECT  COUNT(*) as kount
FROM wp_posts as p
LEFT JOIN wp_postmeta as pm
    ON p.ID = pm.post_id
LEFT JOIN wp_term_relationships  as wtr
    ON p.ID = wtr.object_id
WHERE p.post_type = 'institution'
AND p.post_status = 'publish'
AND pm.meta_key = 'price'    
AND pm.meta_value = '0'

В результате получается 92456, что превышает общее количество сообщений

select count(*) from wp_posts

, что возвращает 86317. Хорошо,Я думал, что некоторые из постов имеют несколько ценовых полей, но нет:

select post_id, count(*) kount from wp_postmeta 
where meta_key='price'
group by post_id
having kount>1

возвращает пустой набор.Что не так с моим SQL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...