[SQL] 2 Selects zusammenführen

Hallo liebe Liste,

ich habe 2 Views und möchte die Ausgabe beider (SELECT * FROM View1, View2)
zusammenführen, ohne das ein karthesisches Produkt entsteht.
Was muß ich dazu tun ?

Vielen Dank im Voraus
Karsten

SELECT * FROM tabelle1/view1
UNION ALL
SELECT * FROM tabelle2/view2

…es müssen halt beide SELECTs die selben Felder haben.

LG/SF

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich habe 2 Views und möchte die Ausgabe beider (SELECT * FROM
View1, View2)
zusammenführen, ohne das ein karthesisches Produkt entsteht.
Was muß ich dazu tun ?

Willst du so zusammenführen, dass du immer zwei Datensätze zu einem zusammenfügst oder die beiden Ergebnislisten einfach aneinanderanhängen?

Bei letzterem gehts mit UNION, wie schon in der vorherigen Antwort beschrieben, bei ersterem brauchst du wie bei jedem andren Join ein Kriterium anhand dessen du bestimmen kannst welche Datensätze zusammengehören, dann:

SELECT * FROM view1, view2 WHERE view1.feld = view2.feld

Grüße, Robert

schönen morgen!

SELECT * FROM tabelle1/view1
UNION ALL
SELECT * FROM tabelle2/view2

…es müssen halt beide SELECTs die selben Felder haben.

geht aber auch, wenn die felder nicht übereinstimmen, indem du die nicht vorhandenen felder mit nulls auffüllst:

annahme:
view1: feld1 number, feld2 varchar2, feld3 date
view2: feld4 varchar2, feld5 number, feld6 number

select feld1,feld2,feld3,null,to_number(null),to_number(null)
from view1
union to_number(null),null,to_date(null),feld4,feld5,feld6
from view2

grüße,
tomh

…sagte ich doch!

Die SELECTS müssen die selben Felder haben, nicht die Tabellen!!!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hi!

…sagte ich doch!

Die SELECTS müssen die selben Felder haben, nicht die
Tabellen!!!

slow down! hab dich aufgrund deines beispiels einerseits nicht ganz richtig verstanden verstanden, andrerseits wollt ich ein beispiel mit verschiedenen feldern aufzeigen …

grüße,
tomh

schönen morgen!

SELECT * FROM tabelle1/view1
UNION ALL
SELECT * FROM tabelle2/view2

…es müssen halt beide SELECTs die selben Felder haben.

geht aber auch, wenn die felder nicht übereinstimmen, indem du
die nicht vorhandenen felder mit nulls auffüllst:

annahme:
view1: feld1 number, feld2 varchar2, feld3 date
view2: feld4 varchar2, feld5 number, feld6 number

select feld1,feld2,feld3,null,to_number(null),to_number(null)
from view1
union to_number(null),null,to_date(null),feld4,feld5,feld6
from view2

grüße,
tomh

just joking around :wink:

Hallo,

vielen Dank an alle die mir geschrieben haben. Die Lösung mit UNION ist das Richtige für mich.

Leider habe ich keine Benachrichtigung durch w-w-w erhalten, so dass ich erst jetzt auf eure Antworten gestossen bin.

Nochmals vielen Dank
Karsten