我有3個表 - 項目, 道具, Items_To_Props問題加入SQL Server 2000的
我需要返回匹配我送 例如所有屬性的所有項目
items
1
2
3
4
props
T1
T2
T3
items_to_props
1 T1
1 T2
1 T3
2 T1
3 T1
當我發送T1,T2我只需要獲得項目1
我有3個表 - 項目, 道具, Items_To_Props問題加入SQL Server 2000的
我需要返回匹配我送 例如所有屬性的所有項目
items
1
2
3
4
props
T1
T2
T3
items_to_props
1 T1
1 T2
1 T3
2 T1
3 T1
當我發送T1,T2我只需要獲得項目1
SELECT T.itemId
FROM (SELECT itemId, count(distinct prop) propCount
FROM items_to_props
WHERE prop in ('T1', 'T2')
GROUP BY itemId) T
WHERE T.propCount = 2
如果你不知道你有多少道具都有,你可以創建一個臨時表#P(prop)
,用你的道具填充它,然後運行如下因素查詢(會做同樣的事情):
SELECT T.itemId
FROM (SELECT i.itemId, count(distinct p.prop) propCount
FROM items_to_props i
JOIN #P p on i.prop = p.prop
GROUP BY i.itemId) T
WHERE T.propCount = (SELECT COUNT(DISTINCT prop) FROM #P)
對於T2,您只得到一行是正確的,您應該得到3對於T1
從物品內部加入items_to_props 其中t = T1和t = T2 我知道這是錯誤的,但我不知道如何獲得1行的項目有2 prpos – eyalb 2009-11-03 09:21:33
但我不知道有多少道具我有 – eyalb 2009-11-03 09:24:03
Tnx。它工作正常 – eyalb 2009-11-03 09:35:41