一个表A里面有类似这样的记录:
id name role
1 aa 1
1 aa 2
2 bb 3
3 cc 4因为同一个id,有不同角色,在查询的时候,有这么个需求:根据指定role查询这个id下所有的记录。
例如,条件role=1
现在要得到的数据:
1 aa 1
1 aa 2
请问大家,这个SQL用一条语句改怎么写?
先谢谢了
id name role
1 aa 1
1 aa 2
2 bb 3
3 cc 4因为同一个id,有不同角色,在查询的时候,有这么个需求:根据指定role查询这个id下所有的记录。
例如,条件role=1
现在要得到的数据:
1 aa 1
1 aa 2
请问大家,这个SQL用一条语句改怎么写?
先谢谢了
from a,
(select id from a where role = 1) a1
where a.id=a1.id
ID1 NAME1 ROLE1
--- ----- -----
3 cc 4
2 bb 3
1 aa 2
1 aa 1
SQL>
SQL> SELECT *
2 FROM TEST A
3 WHERE EXISTS (SELECT 1
4 FROM TEST B
5 WHERE B.ID1 = A.ID1
6 AND B.ROLE1 = '1')
7 ;
ID1 NAME1 ROLE1
--- ----- -----
1 aa 2
1 aa 1
SQL> drop table test;
select A.* from A where role=1 and id=1
select * from table where id in (select t.id from table t where t.role='指定Role')