如何在sql的单个View中加入两个视图?

时间:2015-11-06 13:40:00

标签: sql

我有两个视图我想合并到单个视图中,例如

视图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中选择*

输出到单个查询

请帮助

2 个答案:

答案 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;

需要更多详细信息才能知道要使用的联接以及哪些字段。