我意识到这不是最优雅的sql。我修改了此查询,其中原始查询仅从单个类别(slug
的字段terms
表)。我试图获得一个结果集,它返回具有多个类别(或段塞)的项作为属性。
这不会返回行,即使项目的类别列表中同时包含“arizona”和“speech language Pathogist”:
SELECT p.ID FROM wp_term_relationships tr
JOIN wp_posts p ON tr.object_id = p.ID
JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
JOIN wp_terms t ON tt.term_id = t.term_id
WHERE p.post_parent = 220 AND t.slug = \'arizona\' AND t.slug = \'speech-language-pathology\' AND p.post_status = \'publish\'
但是,如果删除和条件之一,此查询将生成一个结果集:SELECT p.ID FROM wp_term_relationships tr
JOIN wp_posts p ON tr.object_id = p.ID
JOIN wp_term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id
JOIN wp_terms t ON tt.term_id = t.term_id
WHERE p.post_parent = 220 AND t.slug = \'arizona\' AND p.post_status = \'publish\'
我的SQL有点生疏,我看不出t.slug=\'something\'和t.slug=\'something-other\'是如何不合逻辑的。