我有一张如下例所示的表格。
SQL> select * from test;
ID PARENT_ID NAME
1 1 A
2 1 B
3 2 A
4 2 B
5 3 A
6 3 B
7 3 C
8 4 A
我需要的是获得所有唯一的名称子集((A,B),(A,B,C),(A))或排除重复的子集。你可以看到(A,B)是两次,一个是PARENT_ID = 1,一个是2。 我想排除这些重复:
ID PARENT_ID NAME
1 1 A
2 1 B
5 3 A
6 3 B
7 3 C
8 4 A
答案 0 :(得分:0)
我使用了' group_concat'假设您正在使用' Mysql'。 Oracle中的等效函数是' listagg()'。你可以在SQL小提琴中看到它here
以下是解决方案: -
Select a.* from
test a
inner join
(
Select nm, min(parent_id) as p_id
from
(
Select Parent_id, group_concat(NAME) as nm
from test
group by Parent_ID
) a
group by nm
)b
on a.Parent_id=b.p_id
order by parent_id, name
答案 1 :(得分:0)
您可以使用$Command = "find ".__DIR__." -inum ".$Inode." -print";
$Result = shell_exec($Command);
仅返回不同的值。
e.g。
DISTINCT