Bueno veamos este ejemplo
telefonos codper codide telefono
4 1 1111
4 2 2222
4 3 3333
direcciones codper codide direccion
4 1 calle1
4 4 calle 4
la consulta:
select t.codide, t.telefono, d.direccion
from telefonos t left join direcciones d
on t.codide=d.codide
where t.codper=4 and d.codper=4
que es del estilo de las que me propones, solo logra obtener el registro presente en las dos tablas de codide=1
igual que esta otra mas sencilla:
select t.codide, t.telefono, d.direccion
from telefonos t left join direcciones d
on t.codide=d.codide
where t.codper=4 and d.codper=4
pero como lo que pretendo obtener es
t.codide telefono direccion d.codide
1 1111 calle 1 1
2 2222 null null
3 3333 null null
null null calle 2 4
es como si faltaran sucesivamente tras dos consultas sencillas...
select codide, telefono
from telefonos
where codper=4 and codide not in
(select codide from direcciones where codper=4)
que devuelve los dos telefonos sin direccion y
select codide, direccion
from direcciones
where codper=4 and codide not in
(select codide from telefonos where codper=4)
que entrega la direccion sin telefono.........
Lo que no se hacer es lograrlo de una sola consulta
¿Puedes echarme otra mano?
Gracias Juan
(Si estaré torpe que es la segunda vez que lo pierdo)
|