2010-12-30 8 views
3

が答えを見つけることを試みたが、次のようにまだ..表がありませんでした:MySQLはテーブルから一つのフィールドを選択する条件が複数行であるWHERE

 
id, keyword, value 
1 display 15.6 
1 harddrive 320 
1 ram  3 

だから私は必要なもの、このようなものです。 。

それはあるようだUNIONに対処するものだが、私はdidnの(keyword="display" and value="15.6") AND (keyword="harddrive" and value="320") は(1行)1つのIDを返すになるはずである3つのまたは4などのキーワード条件があるだろうという可能性もあります。この表からIDを選択します私はそれを把握することはできません前にそれを使用しないでください

ありがとうございます。

答えて

3

これはrelational divisionの問題です。次のようなことをする必要があります。

SELECT id 
FROM your_table 
WHERE 
(keyword="display" and value="15.6") OR (keyword="harddrive" and value="320") 
GROUP BY id 
HAVING COUNT(*) = 2 

テーブルには、完全に重複する行が存在しないように適切な制約があると仮定しています。 (例えば、id, keywordにPKがある)

+0

これはそれです!ありがとうございました!リンクはいいです、私はすでにそれを勉強しています。完璧な:)ああ、はい、重複した行は是非禁止されています –

0
SELECT DISTINCT id FROM table 
WHERE 
(keyword="display" and value=15.6) OR (keyword="harddrive" and value=320) 
関連する問題