如何在Oracle SQL中选择相关的项目组

时间:2008-11-19 13:00:15

标签: sql oracle

我有一些表格

的数据
Key    ID      Link       
1      MASTER  123
2      AA      123
3      AA      123
4      BB      123
5      MASTER  456
6      CC      456

我希望能够在同一个选择中选择符合选择条件的所有链接项目以及链接主文件。例如,如果我的ID为'AA',我希望返回ID ='AA'的行,加上ID ='MASTER'的行和123的链接:

1      MASTER  123
2      AA      123
3      AA      123

我正在使用Oracle 10.2g,因此如果任何特殊的Oracle语法会使这更容易,那就没关系。

4 个答案:

答案 0 :(得分:4)

这是一种方法。

SELECT DISTINCT key, id, link
  FROM the_table
  START WITH id = 'AA'
  CONNECT BY id = 'MASTER' and link = PRIOR link and 'AA' = PRIOR ID

答案 1 :(得分:0)

SELECT * FROM table_name WHERE ID = your_id UNION ALL SELECT * FROM table_name WHERE ID ='MASTER'AND link =(SELECT link FROM table_name WHERE ID = your_id)

这应该回答我理解的问题;)

答案 2 :(得分:0)

如果我理解正确,这里有一个例子,我认为你正在寻找的是什么:

select * from my_table where link in
(select link
from my_table
where id = 'AA')
and id in ('AA','MASTER')

答案 3 :(得分:0)

我所理解的是,你所拥有的所有记录与id = AA的记录具有相同的“链接” 你需要链接字段:

select i.link from table i
where i.id = YOUR_ID

现在您“选择”具有该链接的记录

select * from table 
where link in (select i.link from table i where i.id = YOUR_ID)

此选择应该为您提供所需的记录......