pid fid
6 19
7 19
8 19
9 19
7 30
6 30
このようなテーブルがあります。19、30 の ID を送信するときに、重複する行を選択したい次のIN
ような句を使用します。
Select pid from tablename where fid IN (19,30);
これらの結果が欲しい
pid
7
6
これらの結果を取得する mysql ステートメントはありますか?
SELECT pid
FROM tableName
WHERE fid IN (19,30)
GROUP BY pid
HAVING COUNT(*) = 2
fid
それぞれに一意の制約が定義されていない場合は、内部pid
にある必要がありますDISTINCT
COUNT
SELECT pid
FROM tableName
WHERE fid IN (19,30)
GROUP BY pid
HAVING COUNT(DISTINCT fid) = 2
使用するdistinct
Select distinct pid from tablename where fid IN (19,30);
または重複を見つける
select pid from tablename group by fid having count(*)>1
SELECT
pid
FROM tablename
where fid IN (19,30)
group by
pid
最初に、pid をグループ化して数え、複数回出現するものを取得する必要があります。
SELECT pid, count(*) AS cnt
FROM tablename
WHERE fid IN (19,30)
GROUP BY pid
HAVING cnt > 1