我试图根据使用子表的匹配关键字来获取父母:
AssetKeyword
============
AssetID (int)
KeywordID (int)
我试图找到表中包含条目的资产,例如关键字3 和 4 和 5。 我已经尝试了子查询和聚合,但无法理解它。感谢任何帮助。那些星期五......
答案 0 :(得分:1)
我猜这不是很有活力......
select
AssetID
from (
select distinct
AssetID,
KeywordID
from AssetKeyword
where
KeywordID in (3,4,5)
) t
group by
AssetID
having
COUNT(*) = 3
答案 1 :(得分:0)
您可以使用EXISTS
:
SELECT a.AssetID, a.Col2, ...
FROM dbo.Asset a
WHERE EXISTS
(
SELECT 1 FROM AssetKeyword ak -- it doesn't matter what you "select" here
WHERE ak.AssetID = a.AssetID
AND ak.KeywordID IN (3, 4, 5)
)
这将选择所有父记录,其中至少有一个孩子至少有一个这样的关键字。