我有一個包含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'並且你加入來獲取名字。 –