现在要在另一张详情表中查出他的三个类型 怎么查询呢 望指点一哈 最好能写出来
oracle的话 connect by可以递归查询,sqlserver可以with写递归,mysql就要借助骚玩法了,加一个字段,把父路径存起来,比如你的16,就要多加一列2,6,16, 这样就变成这一列like就行了(mysql8的话,当我没说)
SELECT t1.*,t2.*,t3.* FROM table_name t
JOIN table_name1 t1 ON t.id1=t1.id
JOIN table_name1 t2 ON t.id2=t2.id
JOIN table_name1 t3 ON t.id3=t3.id
主表为table_name t,关联的表为table_name1,join了3次 分别关联了t的id1、id2、id3字段
如果 各个关联都是保证能查到数据的话 直接用join即可
如果 t的id1、id2、id3可能为空 把join换成left join即可
当然left join 性能可能是个问题
最好是业务上去分开查询 再组装
哪个字段是依赖关系
需求是啥?是三级联动联表查询,还是另一张详情表查出他的三个类型。
如果是三级联动都是在一个表里关联查询,可以这样:
SELECT t1.*,t2.*,t3.* FROM table_name t1
JOIN table_name t2 ON t1.parent_id=t2.id
JOIN table_name t3 ON t2.parent_id=t3.id
table_name为同一个表