2016-08-23 3 views
0

Я работаю с Wordpress, создавая фильтр, и изо всех сил пытаюсь выяснить этот необработанный запрос.MySQL Query: получение COUNT одной таблицы, где идентификатор таблицы 1 имеет значение X в другой таблице

Это то, что я сейчас:

SELECT COUNT(*) FROM active_listings 
    WHERE listing_type = "sales" 
    AND price > 50000 
    AND beds >= 3 
    AND baths >= 4 
    AND active = "1" 
    AND (dstatus IS NULL OR (dstatus != "Temporarily No Showings" AND dstatus != "Contingent")) 
    AND location in (11) 

Но мне также нужно проверить wp_postmeta таблицу, чтобы увидеть, если строка, которая имеет соответствующий post_id имеет meta_key из wpcf-active и meta_value из 1.

+2

https://en.wikipedia.org/wiki/Join_(SQL) –

+0

Что такое ошибка? – RGriffiths

+0

Итак, подождите секунду - вы используете отдельную таблицу под названием 'active_listings', но вы ** также используете ** таблицу' wp_postmeta'? Как вы это делаете? –

ответ

2

Просто используйте INNER JOIN.. Это позволит выбрать записи из обеих таблиц, имеющих один и тот же пост_ид. Вы, возможно, придется корректировать имена столбцов и т.д., но это будет выглядеть примерно так:

SELECT COUNT(*) 
FROM active_listings INNER JOIN wp_postmeta 
ON active_listings.post_id = wp_postmeta.post_id 
WHERE listing_type = "sales" 
AND price > 50000 
AND beds >= 3 
AND baths >= 4 
AND active = "1" 
AND (dstatus IS NULL OR (dstatus != "Temporarily No Showings" AND dstatus != "Contingent")) 
AND location in (11) 
AND meta_key = 'wpcf-active' 
AND meta_value = 1 
Смежные вопросы