0

こんにちは、私は 2 つの列を持つテーブルを持っていますtrial_idcategory_id

分かりやすいように画像を添付します。

次のようなクエリを実行できるレコードがtrial_id必要な場合category_id

 SELECT * FROM `trial_category` WHERE category_id IN ( 259, 260 )

trial_idこれらの 2 つに関連付けることができます。category_id

私の問題は、trial_idこれら2つと完全に一致する が欲しいというcategory_idことです。どうすればよいですか?

trial_id73 だけが 259 と 260 の両方を持っていることに気付いた場合category_id、私の結果は 73 だけになるはずです。

ありがとうここに画像の説明を入力

4

5 に答える 5

1
SELECT trial_id, count(trial_id) AS ccnt
FROM trial_category
WHERE category_id IN ( 259,260)
GROUP BY trial_id
HAVING ccnt = 2
于 2013-07-03T10:49:48.213 に答える
1

group by 句を使用します。

SELECT trail_id FROM `trial_category` 
WHERE category_id IN ( 259, 260 ) 
GROUP BY trial_id
HAVING count(trial_id) = 2
于 2013-07-03T10:50:06.060 に答える
0

あなたはのために使用する必要がありGROUP BYますtrial_id

SELECT q.* FROM (
SELECT *,COUNT(trial_id) as tcount FROM trial_category 
WHERE category_id IN ( 259, 260 ) GRUOP BY trial_id ) q
WHERE q.tcount >1

また

SELECT *,COUNT(trial_id) as tcount FROM trial_category 
WHERE category_id IN ( 259, 260 ) GRUOP BY trial_id  HAVING tcount >1
于 2013-07-03T10:50:03.397 に答える