2013-07-24 7 views
4
SELECT b.post_title, a.post_id, COUNT(*) as Total 
FROM wp_posts b INNER JOIN 
      wp_postmeta a ON a.post_id = b.ID 
    WHERE a.meta_value = 1 
     AND a.meta_key = 'type-select' 
     AND b.post_status = 'publish' 
     and post_type = 'car-cc' 
GROUP BY b.post_title, a.post_id 

В настоящее время вставили-х post title и post id, но я также необходимо выбрать meta value где мета ключ = тип поколения проблема является еще мета ключ уже сравнивались в запросе.WordPress пользовательский запрос, чтобы выбрать мета значение

SQL Скрипки: http://sqlfiddle.com/#!2/109c2/1

+0

Почему бы просто не создать экземпляр [WP_Query] (http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters)? - Вот для чего это. – Mark

+0

Я не знал об этом в начале из-за природы плагина. –

+0

Существует довольно много ситуаций, когда вы не можете использовать WP_Query (в моем случае это связано с тем, что я объединяю результаты с собственной таблицей), так что это по-прежнему полезный вопрос. –

ответ

1
SELECT b.post_title, a.post_id, COUNT(*) as Total 
FROM wp_posts b INNER JOIN 
      wp_postmeta a ON a.post_id = b.ID 
    WHERE (a.meta_value = 1 
     AND a.meta_key = 'type-select' 
     AND b.post_status = 'publish' 
     and post_type = 'car-cc') 
    OR (a.meta_value = 1 
     AND a.meta_key = 'type-gen' 
     AND b.post_status = 'publish' 
     and post_type = 'car-cc') 
GROUP BY b.post_title, a.post_id 
+0

Это не выбор 'meta value' @ rick-klaassen –

3

Держи

SELECT b.post_title, a.post_id, COUNT(*) AS Total, 
(SELECT meta_value FROM `wp_postmeta` WHERE post_id= b.ID AND meta_key='type-gen') AS 'new meta value' 
FROM wp_posts b INNER JOIN 
      wp_postmeta a ON a.post_id = b.ID 
    WHERE a.meta_value = 1 
     AND a.meta_key = 'type-select' 
     AND b.post_status = 'publish' 
     AND post_type = 'car-cc' 
GROUP BY b.post_title, a.post_id 

Fiddle

1

Использование WP_Query для этого,

Modified из Codex page

$args = array(
    'post_type' => 'car-cc', 
    'meta_query' => array(
    array(
     'key' => 'type-select', 
     'value' => '1', 
     'compare' => '=' 
), 
    array(
     'key' => 'type-gen', 
     'value' => 'my-great-type', 
     'compare' => 'LIKE' 
    ) 
) 
); 

$query = new WP_Query($args); 
Смежные вопросы