我目前有2个SQL表,如下所示:
和...
我需要编写一条SELECT语句,该语句从DataTable中检索包含与FilterTable匹配的行的所有产品。
因此,根据上面的示例表,如果我要运行查询,它将返回以下结果:
我最近发现了一个尝试这种问题的问题:SQL查询联接中的所有记录都符合条件吗?但未能成功执行类似的操作
注-我正在使用Microsoft SQL Server 2008
这有点复杂,但这是一个解决方案。基本上,您需要检查以查看数据表中有多少条记录与过滤器表中的所有记录相匹配。这使用子查询来做到这一点:
SELECT *
FROM DataTable
WHERE ID IN (
SELECT DT.ID
FROM DataTable DT
JOIN FilterTable FT ON FT.Name = DT.Name
AND FT.Value = DT.VALUE
GROUP BY DT.ID
HAVING COUNT(*) = (SELECT COUNT(*) FROM FilterTable)
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句