4

私はテーブルを持っています

ID NAME
--------
1  AAA
2  BBB
2  AAA
2  CCC
1  DDD
2  DDD

ID 1 と 2 の両方にリンクされているレコードを表示する必要があります

NAME
----
AAA
DDD

以下のクエリを使用しています-

Select Name from table1 where ID IN (1,2);

しかし、それは私を表示しています -

NAME
-----
AAA
BBB
CCC
DDD

この問題を解決するためにクエリを変更するにはどうすればよいですか?

4

5 に答える 5

6
SELECT DISTINCT NAME
FROM tabel1 t1
join table1 t2
on t1.id = 1 and t2.id = 2 and t1.name = t2.name

または、多くの一致がある場合

SELECT DISTINCT NAME
FROM tabel1 t1
WHERE EXISTS (SELECT 1 FROM table1 t2 WHERE t1.name = t2.name and t2.id = 2)
and t1.id = 1

また

SELECT NAME FROM tabel1 WHERE id = 1
INTERSECT
SELECT NAME FROM tabel1 WHERE id = 2
于 2013-07-26T11:50:34.287 に答える
2

名前でグループ化してから、フィルタリングする個別の ID を数えます。

select name
from table
where id in (1,2)
group by name
having count (distinct ID) = 2
于 2013-07-26T11:49:04.410 に答える
1
Select Name from TableName 
where id in (1,2)
 group by Name having Count(Distinct Id)>1
于 2013-07-26T11:49:19.123 に答える
1
select name 
from table t
where id = 1 and exists 
(select 1 from table where name = t.name and id = 2)
于 2013-07-26T11:51:40.953 に答える
1
Select Name 
from table1 
where ID IN (1,2)
and Name in  ( select Name               
                 from table1 
                where ID IN (1,2)
               group by Name
               having count(id) =2 
             ) ;
于 2013-07-26T11:46:31.040 に答える