web-dev-qa-db-fra.com

wpdb obtenir les messages par taxonomie SQL

J'ai besoin d'une liste de publications d'un type de message spécifique, ainsi que du nom d'un terme de taxonomie personnalisé.

C'est ce que j'ai eu jusqu'à présent

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

Quel est le problème? Je reçois trop de résultats, j’obtiens les bons messages, mais plusieurs fois avec chaque client. Je suppose que c'est parce que j'utilise $ wpdb-> termes comme t ET comme t2? Mais quand j’essaie de l’utiliser aussi souvent, j’obtiens l’erreur

Not unique table/alias: 't'

Qui peut aider?

3
Web-Entwickler

Désolé les gars, je viens de trouver la solution:

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

Je n'ai simplement pas à définir d'alias pour $wpdb->terms dans la clause FROM.

4
Web-Entwickler