Php 表引用自身,MySQL,同一表中的主键和外键,select语句

Php 表引用自身,MySQL,同一表中的主键和外键,select语句,php,mysql,sql,select,Php,Mysql,Sql,Select,我如何从表中选择包含两种类型SubCat和MainCat的类别列,该表本身称为cat: 其中,外键main cat_id引用的cat_id为PrimeryKey 数据库中的表: cat_id catname maincat_id cat_type 1 hello NULL 1 2 one 3 2 3 test 1

我如何从表中选择包含两种类型SubCat和MainCat的类别列,该表本身称为cat:

其中,外键main cat_id引用的cat_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”的类别表,其中有主类别和子类别,这使得小树只有一级深度。

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

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
毕竟,我希望我正确理解你的问题,这就是你需要的


Fiddle:

您可以使用自连接进行此操作

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;

什么是{你的子类别}?{your MainCat}?这是您的数据库表,表上的名称如果只有一个表,我不理解您数据库上的设置..:-有很多表格,但这里我们有一个名为“cat”的类别表,有主要类别和子类别,使小树只有一级深度。在问题中保留您的信息:@Imad.M请按现在的方式尝试查询。看看小提琴。你不应该指望人们完全解决你的问题,所以…我说我的桌子名是猫。所以我只是把它放进去,不起作用,给了我:1054-未知列“字段列表”中的“c.catname”选择c.catname,m.catname从cat as c,cat as m其中c.maincat_id=m.cat_id&&c.cat_type=2;
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;