示例:parentid是1就是id為1的公司的子公司
解法:
SELECT sub.orgName AS 公司名, main.orgName AS 父公司名FROM 表名 main JOIN 表名 sub ON (main.id = sub.parentId)
在開發中近常會遇到這樣的查詢(如果是JDBC方式或者純SQL語句查詢的話):
如果一個表里面存在id和parentId,你又想同時查詢出name和parentName既可以使用下面的方式查詢哦。
select child.NAME,child.ID,child.PARENT_ID,parent.name as PARENT_NAME FROM tb_dictionary parent left join tb_dictionary child on parent.id=child.parent_id
SELECT DISTINCT Prt_AlarmRecord.PartCode ,Bmt_Part.PartNameFull FROM [Prt_AlarmRecord] LEFT JOIN (SELECT child.[GUID],child.[ParentGUID],child.PartCode AS PartCode, CASE WHEN parent.[PartName] IS NULL THEN child.[PartName] ELSE (CAST(isnull(parent.[PartName],'') as varchar(100))) +'|'+(CAST(child.[PartName] as varchar(100))) END AS PartNameFull FROM Bmt_Part child LEFT JOIN Bmt_Part parent on parent.[GUID]=child.[ParentGUID] ) AS Bmt_Part ON [Prt_AlarmRecord].PartCode =Bmt_Part.PartCode WHERE [StartTime] >='2020-04-21 17:56:09' AND [EndTime]<= '2020-04-21 17:56:09' ORDER BY PartNameFull ASC