MySQL:需要连接专业知识

问题描述:

注意嵌套的子查询。我知道有一个更好的方法可以使JOIN成为现实。我只是没有专业知识来解决它。MySQL:需要连接专业知识

SELECT DISTINCT pm.post_id 
FROM wp_3_postmeta pm 
WHERE pm.meta_key LIKE 'member_categories_%_member_categories_name' 
AND pm.meta_value IN(
    SELECT tt.term_taxonomy_id 
    FROM wp_3_term_taxonomy tt 
    WHERE tt.parent IN(
     SELECT tt.term_taxonomy_id 
     FROM wp_3_term_taxonomy tt 
     WHERE tt.parent = 33) 
    OR tt.parent = 33 
); 

感谢您的帮助!

这应该为你

SELECT DISTINCT pm.post_id 
FROM wp_3_postmeta pm 
    INNER JOIN wp_3_term_taxonomy tt ON pm.meta_value = tt.term_taxonomy_id 
    LEFT JOIN wp_3_term_taxonomy tt2 ON tt.parent = tt2.term_taxonomy_id 
WHERE pm.meta_key LIKE 'member_categories_%_member_categories_name' 
    AND (tt.parent = 33 OR tt2.parent = 33) 
+0

完美!谢谢。 – lancemonotone 2012-01-06 15:44:41

+0

很高兴我能帮到你 – 2012-01-06 15:48:52

我想这应该得到你想要什么做的伎俩:

SELECT DISTINCT pm.post_id 
FROM wp_3_postmeta pm 
JOIN wp_3_term_taxonomy tt 
    ON tt.term_taxonomy_id = pm.meta_value 
LEFT JOIN wp_3_term_taxonomy t2 
    ON t2.term_taxonomy_id = tt.parent 
WHERE pm.meta_key LIKE 'member_categories_%_member_categories_name' 
    AND (t2.parent = 33 OR tt.parent = 33)