Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie wähle ich eine Spalte aus allen Tabellen aus, in denen sie sich befindet?

Um Datensätze aus einer Tabelle zu erhalten, müssen Sie eine Abfrage für diese Tabelle schreiben. Sie können also nicht ALLE Datensätze aus Tabellen mit einem bestimmten Feld erhalten, ohne eine Abfrage für jede dieser Tabellen durchzuführen.

Wenn Sie an einer Teilmenge von Spalten interessiert sind und diese Teilmenge von allen Tabellen gemeinsam genutzt wird, können Sie die Operation UNION/UNION ALL wie folgt verwenden:

select * from (
select customer_number, phone, address from table1
union all
select customer_number, phone, address from table2
union all
select customer_number, phone, address from table3
)
where customer_number = 'my number'

Oder in einem einfachen Fall, in dem Sie nur wissen möchten, welche Tabellen Datensätze zu einem bestimmten Kunden enthalten

select * from (
select 'table1' src_tbl, customer_number from table1
union all
select 'table2', customer_number from table2
union all
select 'table3', customer_number from table3
)
where customer_number = 'my number'

Andernfalls müssen Sie jede Tabelle einzeln abfragen.