Mysql, consulta registro sin integridad referencial

Juan Manuel Doren jm.doren en ok.cl
Mar Sep 30 20:45:29 CLT 2008


prueba con un left join

ej;


mysql> select * from padre;
+----+
| id |
+----+
|  1 |
|  2 |
|  3 |
+----+

mysql> select * from hija;
+----+
| id |
+----+
|  1 |
|  2 |
|  5 |
|  6 |
|  7 |
+----+



mysql> select h.id as h_id, p.id as p_id from hija h LEFT JOIN padre p
ON h.id = p.id where  p.id is null;
+------+------+
| h_id | p_id |
+------+------+
|    5 | NULL |
|    6 | NULL |
|    7 | NULL |
+------+------+





El día 30 de septiembre de 2008 19:20, Lorenzo Ponce
<lekronne en yahoo.com> escribió:
> Estimados, en primer lugar, no sé si esta es la lista adecuada por lo que no vi una de base de datos, si no lo es, favor indicar (con una vez basta).
>
> Tengo una base de datos MyISAM (MySQL), y tengo la necesidad de rescatar datos de una tabla cuya integridad referencial no existe.
>
> Es sencillo sacar los que tienen su PK con la FK en otra tabla, WHERE idCampo=fkCampo, pero lo que quiero es sacar aquellos registros que NO tienen hecha la relación.
>
> He intentado usando selects anidados y funciones como NOT IN, lo cual funciona bien con pocos registros, pero al crecer la cantidad de registros se torna demasiado lento por los selects que debe hacer en cada vuelta.
>
> Me gustaría me indicaran alguna solución más eficiente. Me imagino que llenar de OR la consulta sería poco eficiente también.
>
> Favor, omitir comentarios del tipo cámbiate a postgres, u otros, que no contribuyan a la solución de codificación requerida.
>
> Muchas gracias.
> LP
>
>
>
>      ____________________________________________________________________________________
> ¡Todo sobre Amor y Sexo!
> La guía completa para tu vida en Mujer de Hoy.
> http://mujerdehoy.telemundo.yahoo.com/
>



-- 
Juan Manuel Doren
Santiago, Chile



Más información sobre la lista de distribución Linux