2014-02-25 93 views
-1

我有一个产品表以下数据:Mysql的选择父产品

ID PARENT_ID TITLE 
    1 0  Elisa Dress 
    2 1  Elisa Dress blue size XS 
    3 1  Elisa Dress blue size M 
    4 1  Elisa Dress blue size L 
    5 1  Elisa Dress blue size XL 
    6 1  Elisa Dress red size XS 
    7 1  Elisa Dress red size M 
    8 1  Elisa Dress red size L 
    9 1  Elisa Dress red size XL 
    10 0  Jennifer Dress 
    11 10  Jennifer Dress yellow size XS 
    12 10  Jennifer Dress yellow size M 
    13 10  Jennifer Dress yellow size L 
    14 10  Jennifer Dress yellow size XL 

如果“礼服蓝色”和我运行查询的用户seraches我得到多发的结果(所有孩子的)但我想只返回父母。问题是父母不包括颜色。如果我分组我得到不想要的结果,我得到一个孩子元素,但不是父母。

有人可以请帮忙。 谢谢

+0

层次结构上可以有多少层次?只有2? – wxyz

+0

@PravinS如果我使用条件PARENT_ID = 0它将返回零结果。 – matrixx

+0

@wxyz是只有2级别 – matrixx

回答

0

我不知道你是如何得到当前的结果或你的实现是什么样的,但我会建议看看Closure Tables。

Article On Closure Tables

+0

如果我想使用两个表,我会分开孩子和父母表,并使用JOIN获得想要的结果。 但它会更复杂 – matrixx

+0

尝试加入表与自己。 喜欢的东西: SELECT DISTINCT t1.id FROM礼服点t1 INNER JOIN礼服T2 ON t.id = t2.parent_id WHERE t1.parent_id = 0 – frikkievb

+0

已经尝试过,但它didn't工作 – matrixx