2012-03-29 19 views
1

私はIDと値を持つテーブルを持っています。彼らは一緒にユニークです。 mysqlはselectクエリを正しく構築します

ID VALUE 
1 value1 
1 value2 
2 value1 
3 value2 
3 value3 
3 value4 
4 value3 
5 value1 

は、私は、私はこれらの値の両方に一致IDを選択するために、与えられた値 "値2" と "値3" したいのです想定(すなわち。3)

私はでき

SELECT ID FROM table WHERE VALUE IN("value2", "value3") 

ただし、いずれかと一致する値も返します。これらの値の両方に一致するクエリのみをクエリする方法はありますか?

+1

恐ろしいタイトルだという。 –

答えて

1

あなたは

SELECT ID FROM table WHERE VALUE IN("value2", "value3") GROUP BY ID HAVING COUNT(*) = 2 
+0

が優れています。ちょうど私が必要なもの – nick

1

は、以下のことを試してみてください持つGROUP BYを使用する必要があります。

SELECT id FROM table WHERE value = "value2" and id in (SELECT id FROM table WHERE value = "value3") 
1
SELECT t1.id FROM table AS t1 JOIN table AS t2 ON t1.id=t2.id 
    WHERE t1.value="value2" AND t2.value="value3" 
関連する問題