我有两个表,Main
并且Details
- 它们具有一对多的关系,其中一行Main
可能在Details
.
我正在尝试创建一个查询,该查询返回来自 的所有信息Main
,以及其中的关联行是否Details
包含一组代码中的一个。当然,由于它是一对多的,因此其中可能存在几个这样的代码Details
- 我不想重复计算行数。我也需要重复几次。
我想要的是这样的:
SELECT m.*, CASE WHEN x.ID IS NOT NULL THEN 1 ELSE 0 END AS Codes1, CASE WHEN y.ID IS NOT NULL THEN 1 ELSE 0 END AS Codes2
FROM [Main] m
LEFT JOIN EXISTS(SELECT d.ID FROM [Details] d WHERE m.ID = d.ID AND d.Code IN (<<Codes1>>)) x
LEFT JOIN EXISTS(SELECT d.ID FROM [Details] d WHERE m.ID = d.ID AND d.Code IN (<<Codes2>>)) y
有没有办法做到这一点?(这似乎应该是显而易见的,我过于复杂到第 n 级,但我真的是在画一个空白......