Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment sélectionner une colonne parmi toutes les tables dans lesquelles elle réside ?

Pour obtenir un enregistrement à partir d'une table, vous devez écrire une requête sur cette table. Ainsi, vous ne pouvez pas obtenir TOUS les enregistrements des tables avec un champ spécifié sans une requête sur chacune de ces tables.

S'il existe un sous-ensemble de colonnes qui vous intéresse et que ce sous-ensemble est partagé entre toutes les tables, vous pouvez utiliser l'opération UNION/UNION ALL comme ceci :

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'

Ou, dans le cas simple où vous voulez juste savoir quelles tables ont des enregistrements sur un client particulier

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'

Sinon, vous devez interroger chaque table séparément.