2014-10-31 48 views
0

我有效果的多行的表,我想能夠搜索到它的多個值的搜索表,但一個唯一的ID的多種結果,唯一ID SQL

我不知道如何解釋它,但說我有一個用戶分配給他們多個項目。因此,例如,我希望能夠搜索已分配item 1item 3的用戶列表,並返回該用戶標識以獲取其信息。

示例表:

╔════╦══════╦══════╗ 
║ ID ║ USER ║ ITEM ║ 
╠════╬══════╬══════╣ 
║ 1 ║ 3 ║ 1 ║ 
║ 2 ║ 5 ║ 12 ║ 
║ 3 ║ 3 ║ 3 ║ 
║ 4 ║ 1 ║ 4 ║ 
╚════╩══════╩══════╝ 

將返回user 3作爲兼具item 1item 3

我甚至不知道從哪裏開始。有任何想法嗎??如果需要,我可以嘗試添加更多信息,只是不知道是什麼。

+0

看到這個問題:http://rockfinflow.com/questions/11409869/mysql-nm-relationship-find-rows-with-several-specific-relations – Rufinus 2014-10-31 01:51:54

+0

@Rufinus謝謝你。我在這裏得到的第一個答案已經奏效,但現在已經被刪除,因此無法投票。這就說得通了! :) – dpDesignz 2014-10-31 01:57:06

回答

0

您可以使用group byhaving來做到這一點。一般的SQL是:

select user 
from table t 
group by user 
having sum(case when item = 1 then 1 else 0 end) > 0 and 
     sum(case when item = 3 then 1 else 0 end) > 0; 

having子句中每個條件計算匹配無論13的行數。 > 0指定每個值都需要存在。