¿Como buscar con varias columnas en una tabla hasta encontrar el valor en otra tabla?, ORACLE

publicado por: Anonymous

Muy buenas, alguien sabe como podría realizar una búsqueda entre dos tablas, donde la primera tiene varias columnas y buscar con todas esas columnas hasta encontrar un resultado en otra tabla, me explico:

Tabla1

| nombre | telefono1 | telefono2 | telefono3 |
|--------|-----------|-----------|-----------|
| usuri1 |    123    |    321    |   456     |

Tabla2

| telefono | dato1 | dato2 | dato3 |
|----------|-------|-------|-------|
|   555    |   1   |   2   |   2   |
|   456    |   2   |   5   |   3   | 

Necesito buscar por todas las columnas de teléfono (telefono1, telefono2, telefono3) hasta encontrar un resultado en la Tabla2 y devolver el resultado una vez encontrado.

solución

SELECT TELEFONO,DATO1,DATO2,DATO3 FROM (
            SELECT T2.*,ROW_NUMBER()OVER(PARTITION BY T2.TELEFONO ORDER BY NULL)DUPLICADOS FROM TABLA2 T2
            WHERE EXISTS (
                            SELECT * FROM TABLA1 T1                
                            WHERE 
                            (  
                               T2.TELEFONO = T1.TELEFONO1
                            OR T2.TELEFONO = T1.TELEFONO2
                            OR T2.TELEFONO = T1.TELEFONO3
                            )
                         )
         )WHERE DUPLICADOS=1;
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *