2016-03-01 99 views
0

我喜欢做一个嵌套选择多达5个过滤器,我仍然在3个过滤器。这是代码。MySQL嵌套多达5个过滤器

SELECT * FROM anvariety_trait 
INNER JOIN 
(SELECT variety_id FROM anvariety_trait 
    INNER JOIN (SELECT variety_id FROM anvariety_trait 
        WHERE 
         trait_id = 1 and trait_value = 1) T2 USING (variety_id) 
        where 
         trait_id = 2 AND trait_value = 1) T3 USING (variety_id) 
         INNER JOIN tblVariety USING (variety_id) 
          WHERE 
          trait_id = 3 and trait_value = 1; 
+0

我敢打赌,没人理解你的问题。请添加更多详情。 – RubahMalam

+0

好吧,它就像excel的过滤器函数,您可以选择某个值,然后它只显示具有选定值的行。 –

回答

0

我能够通过将子查询,以添加过滤器 “INNER JOIN(SELECT variety_id FROM anvariety_trait WHERE trait_id = 1和trait_value = 1)T1 USING(variety_id)”。我做这件事情要容易得多,也不复杂,但现在它对我很有用。

SELECT * FROM anvariety_trait 
INNER JOIN 
(SELECT variety_id FROM anvariety_trait 
INNER JOIN (SELECT variety_id FROM anvariety_trait 
INNER JOIN(SELECT variety_id FROM anvariety_trait 
INNER JOIN(SELECT variety_id FROM anvariety_trait 
WHERE 
trait_id = 1 and trait_value = 1) T1 USING (variety_id) 
WHERE 
trait_id = 2 and trait_value = 1) T2 USING (variety_id) 
WHERE 
trait_id = 3 and trait_value = 1) T3 USING (variety_id) 
WHERE 
trait_id = 4 AND trait_value = 1) T4 USING (variety_id) 
INNER JOIN tblVariety USING (variety_id) 
WHERE 
trait_id = 6 and trait_value = 1;