wpdb: получение записей по таксономии SQL
20 апр. 2016 г., 11:58:14
Просмотры: 14.3K
Голосов: 6
Мне нужен список записей определенного типа (post_type) вместе с названием термина пользовательской таксономии.
Вот что у меня есть на данный момент:
SELECT p.post_name, t.name as clientName
FROM $wpdb->posts AS p, $wpdb->terms AS t
LEFT JOIN $wpdb->term_relationships AS tr ON ('p.ID' = tr.object_id)
LEFT JOIN $wpdb->term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
LEFT JOIN $wpdb->terms AS t2 ON (t2.term_id = tt.term_id)
WHERE p.post_status = 'publish'
AND p.post_type = 'portfolio'
AND tt.taxonomy = 'clients'
ORDER BY p.post_date DESC
В чем проблема? Я получаю слишком много результатов - правильные записи, но по несколько раз с каждым клиентом. Я предполагаю, что это потому что я использую $wpdb->terms как t И как t2? Но когда я пытаюсь использовать его как t в обоих случаях, получаю ошибку:
Not unique table/alias: 't' (Не уникальное имя таблицы/алиаса: 't')
Кто может помочь?
Комментарии
Все ответы на вопрос
1
1
Ребята, извините, я только что нашел решение:
SELECT p.post_name, t.name as clientName
FROM $wpdb->posts AS p
INNER JOIN $wpdb->term_relationships AS tr ON ( p.ID = tr.object_id)
INNER JOIN $wpdb->term_taxonomy AS tt ON (tr.term_taxonomy_id = tt.term_taxonomy_id)
INNER JOIN $wpdb->terms AS t ON (t.term_id = tt.term_id)
WHERE p.post_status = 'publish'
AND p.post_type = 'portfolio'
AND tt.taxonomy = 'clients'
ORDER BY p.post_date DESC
Мне просто не нужно определять алиас для $wpdb->terms
в предложении FROM
.

Web-Entwickler
191
20 апр. 2016 г. 12:07:16
Похожие вопросы