0
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 ステートメントはありますか?

4

4 に答える 4

3
SELECT pid
FROM tableName
WHERE fid IN (19,30)
GROUP BY pid
HAVING COUNT(*) = 2

fidそれぞれに一意の制約が定義されていない場合は、内部pidにある必要がありますDISTINCTCOUNT

SELECT pid
FROM tableName
WHERE fid IN (19,30)
GROUP BY pid
HAVING COUNT(DISTINCT fid) = 2
于 2012-11-15T09:49:23.620 に答える
0

使用するdistinct

Select distinct pid from tablename where fid IN (19,30);

または重複を見つける

select pid from tablename group by fid having count(*)>1
于 2012-11-15T09:48:51.313 に答える
0
SELECT 
    pid 
FROM tablename 
where fid IN (19,30)
group by 
pid
于 2012-11-15T09:50:49.623 に答える
0

最初に、pid をグループ化して数え、複数回出現するものを取得する必要があります。

SELECT pid, count(*) AS cnt
FROM tablename
WHERE fid IN (19,30)
GROUP BY pid
HAVING cnt > 1
于 2012-11-15T09:54:41.877 に答える