我有两个视图我想合并到单个视图中,例如
视图1定义为:
CREATE VIEW view1 AS
select DV.demValueId,DV.value,DE.demElementId,DE.name,
DES.demElementSetGroupId,DR.demRecordId,DR.name as Role,
DR.demClusterSetGroupRef,L.EmailId
from DemographicsDataValue DV
inner join DemographicsElement DE
on DV.demValueId=DE.demValueRef
inner join DemographicsElementSet DES
on DE.demElementId=DES.demElementRef
inner join DemographicsRecord DR
on DR.demElementSetGroupRef=DES.demElementSetGroupId
inner join LoginDetail L
on DR.demRecordId=L.demRecordIdRef
视图2定义为:
CREATE VIEW view2
AS
select DV.valueId, DV.value,E.ElementId,E.name,
ES.ElementSetGroupId,ET.entryId,ET.name as E_Name,
ET.SystemDateTime,C.compositionId,C.linkSetRef
from DataValue DV
inner join Element E
on DV.valueId=E.valueRef
inner join ElementSet ES
on E.ElementId=ES.ElementRef
inner join Entry ET
on ES.elementSetGroupId=ET.elementSetGroupRef
inner join EntrySet ESG
on ESG.entryRef=ET.entryId
inner Join Section S
on s.entrySetGroupRef=ESG.entrySetGroupId
inner join SectionSet SS
on SS.sectionRef=S.sectionId
where S.name='Appointment'
如何将它们组合到一个视图中 从View1中选择* 从View2中选择*
输出到单个查询
请帮助
答案 0 :(得分:2)
如果你想要公共字段,你可以这样做:
select * FROM View1
inner join View2 -- or you can do a left join here
on View1.Column = View2.Column -- and ... add more if needed
如果表格结构对于两者都相同并且您不关心重复项,那么如果您关心重复项,则可以执行union all
,然后union
select * from View1
union all
select * from View2
答案 1 :(得分:0)
如果您有同类列,请使用union
。否则,请在合适的字段
Join
SELECT *
FROM view1
INNER JOIN view2 ON view1.id = view2.ref;
需要更多详细信息才能知道要使用的联接以及哪些字段。