我看到了几件类似于我需要做的事情,但并不完全,只是没有足够的信息来完成这项工作。
表有三个字段(GroupID,ParentID和Name)。 ChildID的ParentID包含Parent的相关GroupID。然后,Parent在表中有一个不同的行,然后是Child。父或子的名称位于名称字段中。
我希望结果为我提供ChildName和ParentName的列,只需从表中抓取某些Parent的子项进一步过滤。
要说明另一种方式,我希望与表中某些ParentID相关的所有子项使用ChildName和相关的ParentName。
如何查询此单个表以获取这些结果。
=============================================== =================================
好的第一篇帖子新手在这里,以防不明显。谢谢你的帮助。
这是主题标题和标记中所述的SQL。下次我还会包括身体。更确切地说,它是SQL Server 2014。
我正在操作的数据(源)的一个例子是:
====================================
我最想得到的(目标)是:
=============================================
实际的表包含许多容器,而我只是缩小到其中一些容器。认为该部分将是一个WHERE语句(即:WHERE GroupId = 818或GroupId = 743 ......等),这些都是我在这里学到的。但可能有更好的方法。
感谢
答案 0 :(得分:0)
如果DBMS是mysql并且你不介意一个相当庞大的数据集,因为如果GroupID不明显,这可能会变得很大。 (每个孩子乘以其父母的群组ID的数量
select t1.*, t2.Name as parentName from theTable as t1 JOIN theTable as t2 ON (t1.parentID = t2.GroupID) WHERE t1.parentId in (1,2,3)