1

次のテーブル構造があります。

uid    | product_code
---------------------
00001  | 'tb'
00001  | 'im' 
00001  | 'ip'
00002  | 'tb'
00002  | 'im'

3 つの製品コード 'mg'、'ip'、'tb' をすべて持つ uid を表示する selfjoin クエリが必要です。つまり、00001 のみが表示されます。どうすればそれができますか?

4

3 に答える 3

2
SELECT sj1.uid FROM tbl sj1 
    JOIN tbl sj2 ON sj1.uid = sj2.uid 
    JOIN tbl sj3 ON sj1.uid = sj3.uid
WHERE sj1.product_code = 'tb'
    AND sj2.product_code = 'im'
    AND sj3.product_code = 'mg'

より多くの製品コードがある場合にも機能するはずです。

于 2012-07-09T11:00:55.553 に答える
1
select uid from mytable 
where product_code in ('mg','ip','tb') 
group by uid having count(distinct(product_code))=3;
于 2012-07-09T11:01:26.990 に答える
0

商品コード Select * from table group by uid having count(uid) =3を3つだけお持ちの場合

于 2012-07-09T10:59:53.540 に答える