Ste*_*enP 1 sql t-sql select filter sql-server-2008
我目前有2个SQL表,如下所示:

和...

我需要编写一个SELECT语句来检索DataTable中包含与FilterTable匹配的行的所有产品.
所以基于我上面的示例表,如果我要运行查询,它将返回以下结果:

我最近发现了一个问题,那种尝试: SQL查询连接中的所有记录都匹配条件? 但是在实现类似的东西方面却没有成功
注意 - 我正在使用Microsoft SQL Server 2008
这有点复杂,但这是一个解决方案.基本上你需要检查数据表中有多少记录匹配来自filtertable的所有记录.这使用子查询来做到这一点:
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)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19466 次 |
| 最近记录: |