我有一個表是這樣的:如何選擇2列應匹配多行的不同行?
id | user_id | param_id | param_value
1 1 44 google
2 1 45 adTest
3 1 46 Campaign
4 1 47 null
5 1 48 null
6 2 44 google
7 2 45 adAnotherTest
8 2 46 Campaign2
9 2 47 null
10 2 48 null
我想獲取所有user_ids其中(param_id = 44和param_value =谷歌)AND(param_id = 45和param_value = ADTEST)。所以上面的where子句應該只給user_id = 1而不是user_id = 2。他們在param_id 44都有google,但只有用戶1在param_id = 45時有param_value adTest。
問題是未來可能會增加更多參數。我需要找到一個動態查詢。在這裏我已經tryed:
SELECT DISTINCT up.user_id FROM user_params AS up
LEFT JOIN user_params AS upp ON up.id = upp.id
WHERE up.param_id IN (?,?)
AND upp.param_value IN (?,?)
Ty爲快速回答,briliant –
好的+1並根據您的回答發佈升級 –