Kombinieren von zwei Tabellen mit einer anderen Spalte
Muss ich auswählen, Anfragen, die ich verbinden will mit UNION :
Tabelle 1 : was ist ein join zwischen Table_a, table_b und table_c
id_table_a desc_table_a table_b.id_user table_c.field
-----------------------------------------------------------
1 desc1 1 field1
2 desc2 2 field2
3 desc3 3 field3
Tabelle 2 : das ist auch ein join zwischen Table_a, table_b und table_c aber es hat diese Spalten:
id_table_a desc_table_a table_c.id_user table_c.field
-----------------------------------------------------------
4 desc4 4 field4
5 desc5 5 field8
9 desc9 6 field9
den Unterschied zwischen den beiden ist, dass die in Tabelle 1 haben wir table_b.id_user
- und Tisch-zwei
table_c.id_user
statt .
Kombinierte Tisch
id_table_a desc_table_a id_user table_c.field
-----------------------------------------------------------
1 desc1 1 field1
2 desc2 2 field2
3 desc3 3 field3
4 desc4 4 field4
5 desc5 5 field5
9 desc9 6 field6
Ich habe bereits die join-Anfragen arbeiten, aber das tun union zwischen den beiden gibt mir
ORA-01790 expression must have same datatype as corresponding expression
dem Sinn, weil die beiden Spalten sind nicht das gleiche .
Im mit zend_Db der join-und union .
Also, wie kann ich lösen dieses um das Ergebnis zu erhalten ?
Dank.
Was sind die Datentypen, alle Ihre Felder in den verwendeten Abfragen? Was war deine Abfrage?
Tabelle 1 und Tabelle 2 die Felder haben genau die gleichen Datentypen, id_user in beiden table_b und table_c haben gleichen Typ in DB (NUMBER(6,0))
Gut, ORA-01790 geschieht nur, wenn Sie es nicht sind (siehe z.B. hier: techonthenet.com/oracle/errors/ora01790.php )
Tabelle 1 und Tabelle 2 die Felder haben genau die gleichen Datentypen, id_user in beiden table_b und table_c haben gleichen Typ in DB (NUMBER(6,0))
Gut, ORA-01790 geschieht nur, wenn Sie es nicht sind (siehe z.B. hier: techonthenet.com/oracle/errors/ora01790.php )
InformationsquelleAutor Mouna Cheikhna | 2012-01-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind die Ergebnisse über die gleiche wie die Reihenfolge der Spalten in Ihrer Tabelle? denn oracle ist streng in der Spalte Aufträge. das unten stehende Beispiel erzeugt einen Fehler:
ORA-01790: Ausdruck muss denselben Datentyp wie entsprechende Ausdruck
Wie sehen Sie die Ursache des Fehlers ist in der abweichenden Spalte Bestellung, die impliziert durch die Verwendung von * als Liste der Spalte Bezeichner. Diese Art von Fehler können leicht vermieden werden, durch die Eingabe der Liste der Spalte explizit:
Häufigeres Szenario für diese Fehlermeldung ist, wenn Sie versehentlich swap (oder shift) zwei oder mehr Spalten in der SELECT-Liste:
ODER wenn die oben nicht Ihr problem lösen, wie etwa die Schaffung einer
ALIAS
in den Spaltenwie diese: (die Abfrage ist nicht das gleiche wie deins, aber der Punkt hier ist, wie Sie alias hinzufügen in der Spalte.)
hoffe, das hilft.
InformationsquelleAutor John Woo