我有两张桌子,但我无法弄清楚如何加入它们以满足我的投影需求。这是一个说明问题的场景
1 . 第一个表有一组固定的值/行;在这种情况下房间类型
房型
Id | RoomType
--------------
1 | Bed Room
2 | Kitchen
3 | Half-Bath
2 . 第二个表将第一个表中的项目映射到Property的实例。一个物业可以有1 种或多种 房型
产权房
Property | RoomTypeId
---------------------
ABC | 1
ABC | 3
EFG | 1
XYZ | 1
XYZ | 2
XYZ | 3
注意:以上某些属性未映射到某些房型
3 . 我想制作一个连接行的投影,以便我可以轻松地考虑映射到和未映射到 Property 的房间类型。这是一个示例结果:
Property | RoomTypeId | PropertyHasRoom
---------------------------------------
ABC | 1 | Yes
ABC | 2 | No or NULL
ABC | 3 | Yes
EFG | 1 | Yes
EFG | 2 | No or NULL
EFG | 3 | No or NULL
XYZ | 1 | Yes
XYZ | 2 | Yes
XYZ | 3 | Yes
任何人都可以解释如何在 T-SQL 中完成此操作。
您需要先创建一个乘法 - Property + RoomType 的每个组合。在 SQL Server 中,我们为此使用 CROSS JOIN。然后你需要外连接到联结表,并根据联结表是否有匹配行有条件地显示是/否。这应该提供您想要的输出: