我需要一些幫助完成postgres的以下查詢。postgres - 尋找具有特定記錄的唯一用戶
我有例如下表:(這是什麼IM,努力實現本質)
可以稱之爲 - table_user_flags
user_id flag
1 1
1 2
2 1
2 3
3 1
3 2
3 3
我需要找到其與記錄所有用戶特定的標誌(在標記欄,至少1個結果與每個標誌)
實施例: 具有與標誌1,3(即1和3)的答案(USER_ID 2,3)記錄所有用戶 (而且也將喜歡做它很容易擴展,以便我可以請求標誌1,2,3,4,5等)
我嘗試了很多事情,很遺憾,我無法清楚地說明情況,以便在Google上找到答案。
我最好的猜測(這是瘸腿的,可能是錯誤的)是(並提供標誌陣列 - $ flag_arr)
select a.user_id
from table_user_flags a, table_user_flags b
where a.flag = $flag_arr[0] and b.flag = $flag_arr[1] and a.user_id=b.user_id
但這種策略是緩慢的,而且如果我需要2個標誌只會工作,當我需要超過2個標誌,我需要爲每個flags_arr的長度編寫特定的查詢。
我該如何解決這個問題?
我會感謝任何幫助!
哇,這是一個夢幻般的解決方案,非常感謝你! – user2721348