SELECT p.post_title FROM wp_posts p
LEFT JOIN wp_term_relationships tr on (p.ID = tr.object_id)
LEFT JOIN wp_term_taxonomy tt on (tr.term_taxonomy_id = tt.term_taxonomy_id)
LEFT JOIN wp_term_taxonomy tt2 on (tr.term_taxonomy_id = tt2.term_taxonomy_id)
WHERE
tt2.term_id IN( 36, 32)
AND tt.term_id = 33
AND p.post_type = 'post'
实际上,我有两种不同的分类法(即状态和类别),每个分类法都有很多术语。我必须检查某个类别术语(该 term_id 33)有多少个状态术语 term_id 36 或 32 的帖子。
实际上,我需要将条件应用到同一列(wp_term_taxonomy 表)两次。
以上查询没有返回任何内容。伙计们,请帮助我。
最佳答案
请勿在 WHERE 条件
中使用与 LEFT JOIN TABLE
相关的列,否则这些列将作为 INNER JOIN
工作,因此
SELECT p.post_title FROM wp_posts p
LEFT JOIN wp_term_relationships tr on (p.ID = tr.object_id)
LEFT JOIN wp_term_taxonomy tt on (tr.term_taxonomy_id = tt.term_taxonomy_id)
AND tt.term_id = 33
LEFT JOIN wp_term_taxonomy tt2 on (tr.term_taxonomy_id = tt2.term_taxonomy_id)
AND tt2.term_id IN ( 36, 32)
WHERE p.post_type = 'post'
关于php - 有人可以告诉我这个查询有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47209954/