2011-05-23 32 views
0

也就是说,假设我有一张人员表格和它们携带的项目 - 我们称之为idpersoniditemid这两列。我只想找到携带所有特定项目的人;即,personid小号那些与具有itemid个给定的值的集合的行。只有存在一组特定的行时,才会查询字段的值

什么是我可以做到这一点的好办法?

+0

请停止在标题中写标签。 – 2011-05-23 21:38:15

+0

您需要的关系运算符是[division](http://www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the-sql-of-relational-division/)(“供应所有部件的供应商“)。 – onedaywhen 2011-05-23 21:57:40

+0

是的,这就是我一直在寻找的。谢谢你给我一些东西来称呼它。 – Hamster 2011-05-24 15:42:43

回答

0
SELECT personid, item FROM items WHERE itemid IN (1, 2, 3) 

更改(1, 2, 3)您用逗号分隔itemid秒。

如果你只关心personid,即不是他们的项目,那么下面可以更好地为您服务:作为一个经常性的回答

SELECT DISTINCT personid FROM items WHERE itemid IN (1, 2, 3) 
+0

这不会使具有任何给定收听项目(但不是全部)的人返回吗? – Hamster 2011-05-23 20:24:14

+0

是的,这是正确的。 – 2011-05-23 20:36:00

+0

有没有一种很好的方法让所有的指定项目都可以得到? – Hamster 2011-05-23 20:52:10

相关问题