2014-10-31 49 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指定每个值都需要存在。