可能是重复但我找不到正确的搜索字词来找到它...
我有一个父母"属性表,联系类型的查找表(其中一些是推荐/预期的,其中一些是完全可选的),以及一个"孩子"每个财产的联系人表:
PROPERTY: propId, propName, ...
CONTACTTYPE: typeId, typeName, typeIsRecommended
PROPCONTACTS: propId, typeId, contName, ...
我需要为所有属性显示推荐的联系人,包括那些尚未为每个属性创建的联系人。期望的输出(假设3种推荐的接触类型):
propName,typeName,contName
'Mountain Mall','Manager','Jill'
'Mountain Mall','Engineer','Jane'
'Mountain Mall','Analyst','Jack'
'Central Hotel','Manager','Bob'
'Central Hotel','Engineer',NULL
'Central Hotel','Analyst',NULL
...
我可以轻松地为具有LEFT JOIN的单个属性执行此操作;我无法一次弄清楚如何为所有属性做这件事。我使用的是SQL Server,如果解决方案特定于该环境,则可以。
答案 0 :(得分:1)
以下是查询:
with s as
(
select *
from property
cross join contacttype
)
select s.propname, s.typename, pc.contname
from s
left outer join propcontacts pc on pc.typeid = s.typeid and pc.propid = s.propid