我有一个包含UserId,ItemId和ItemName列的表。如果用户具有特定用户项目的所有项目,我希望获得某些用户的不同项目。我该怎么做与SQL服务器Sql Server 2008查询
1
A
回答
4
您可以使用关系部门来查找拥有所有相同的项目UserId = 1的所有用户。 Some alternative approaches are discussed here。然后,您可以使用EXCEPT
减去用户1的项目。
SELECT ItemId
FROM UserItems U1
WHERE NOT EXISTS (SELECT *
FROM UserItems U2
WHERE UserId = 1
AND NOT EXISTS (SELECT *
FROM UserItems U3
WHERE U1.UserId = U3.UserId
AND U2.ItemId = U3.ItemId))
EXCEPT
SELECT ItemId
FROM UserItems
WHERE UserId = 1
+0
+1我第一次见到用于EXCEPT。感谢您的复习。 –
+0
它的工作。感谢很多 – user811686
相关问题
- 1. SQL Server 2008查询
- 2. SQL Server 2000和SQL Server 2008查询
- 3. 查询优化SQL Server 2008
- 4. SQL Server 2008 Express的查询
- 5. SQL Server 2008/Reporting Services查询
- 6. SQL Server 2008 XML查询
- 7. 查询从SQL Server 2008
- 8. SQL Server 2008像查询
- 9. SQL Server 2008分层查询
- 10. Sql server 2008查询php
- 11. SQL Server 2008 R2表查询
- 12. 查询使用SQL Server 2008
- 13. 优化SQL Server 2008查询
- 14. SQL Server 2008 - 搜索查询
- 15. SQL SERVER 2008树形查询
- 16. SQL Server 2008 R2查询
- 17. 访问查询与SQL Server 2008查询
- 18. SQL Server 2008中的复杂SQL查询
- 19. SQL查询逻辑 - SQL Server 2008中
- 20. T-SQL查询性能 - SQL Server 2008 R2
- 21. 循环在SQL查询的SQL Server 2008
- 22. 的SQL Server 2008 - T-SQL查询
- 23. SQL查询在SQL Server 2008中
- 24. 查询通知(SqlDependency)SQL Server 2008 R2 DeadLock
- 25. SQL Server 2008,条件选择查询
- 26. 的SQL Server 2008:更新查询
- 27. SQL Server 2008的递归查询
- 28. SQL Server 2008更改查询值
- 29. Sql Server 2008 R2查询优化
- 30. 多加入子查询的SQL Server 2008
请提供一些示例数据和预期结果或改进您的口头解释。我得到你想要找到具有特定用户所做的所有项目的所有用户。但那又如何?你想找到这个完整用户拥有的特定用户不需要的所有附加项目? –
你的意思是这样吗?:'SELECT ItemId,ItemName FROM Item WHERE UserId = @ userid' – David
此外,为什么表具有'ItemId'和'ItemName'。应该只有'ItemId'并且你加入来获取名字。 –