我有一个SQL Server连接问题。
我有3张桌子:
最后,我想获得一个给定餐厅的结果表,其中应列出该餐厅的所有属性有没有。所以我也需要输出空值。
| id name | | idRes idProp | | id prop |
+---------------------+ +----------------+ +---------------+
| 01 restaurant-01| | 1 1 | | 1 wifi |
| 02 restaurant-02| | 1 2 | | 2 pool |
| 2 2 | | 3 24/7 |
| 2 2 | | 4 clean |
现在我要输出ID为1的餐厅,其中包含它具有和不具有的所有属性。
| id name idRes idProp id prop |
+----------------------------------------------------+
| 1 restaurant-1 1 1 1 wifi |
| 1 restaurant-1 1 2 2 pool |
| 1 restaurant-1 NULL NULL 3 24/7 |
| 1 restaurant-1 NULL NULL 4 clean |
我希望这是可能的。预先感谢你们。你真棒。
答案 0 :(得分:2)
您想知道与餐厅结合的所有属性是否存在关系。因此,将餐厅和房地产交叉连接,并外部连接关系:
select *
from restaurant r
cross join property p
left join relation rp on rp.idres = r.id and rp.idprop = p.id
where r.id = 1;