表引用本身,MySQL,主键和外键在同一个表中,选择语句

时间:2014-11-04 10:47:32

标签: php mysql sql select

我如何选择两类SubCat&类别的类别列。来自表引用自身MainCat的{​​{1}}:

其中FOREIGN KEY(cat)参考(maincat_id)是PrimeryKey

数据库中的

表:

cat_id    catname       maincat_id   cat_type
1         hello         NULL         1     
2         one           3            2
3         test          1            2
4         te3           3            2

如果您看到cat_id,那么它是cat_type=1

我只需要选择所有SubCat及其所属SubCat的表格,如下所示:

 catname       Root_name
 one           test        
 test          hello          
 te3           test         

更多信息: 我们有一个名为'cat'的类别表,其中有(主要类别)和(子类别),它们构成小树(只有一个深度)。

2 个答案:

答案 0 :(得分:2)

您可以使用简单的内部联接:

SELECT t1.catname AS Category, t2.catname AS Subcategory 
FROM cat t1 INNER JOIN cat t2
ON t1.cat_id = t2.maincat_id
WHERE t1.cat_type = 1

毕竟,我希望我理解你的问题,这就是你需要的。

小提琴:http://sqlfiddle.com/#!2/94e65/18

答案 1 :(得分:0)

您可以使用自我加入

select c.catname as catname ,m.catname as  Root_name from cat as c, cat as m
where c.maincat_id = m.cat_id &&  c.cat_type=2;