Mysql, consulta registro sin integridad referencial

Lorenzo Ponce lekronne en yahoo.com
Mie Oct 1 19:51:30 CLT 2008





----- Mensaje original ----
De: Rodrigo Fuentealba <the.code.keeper en gmail.com>
Para: Discusion de Linux en Castellano <linux en listas.inf.utfsm.cl>
Enviado: martes, 30 de septiembre, 2008 20:26:44
Asunto: Re: Mysql, consulta registro sin integridad referencial

>SELECT tabla1.campo FROM tabla1, tabla2 WHERE tabla1.campo1 NOT IN
>(SELECT tabla2.campo2 FROM tabla2);

>Eso, ¿cierto?.

Correcto, eso es lo que tengo en este momento.

>http://dev.mysql.com/doc/refman/5.0/en/rewriting-subqueries.html

>Haz un query rewrite como el que sigue:

>SELECT tabla1.*
> FROM tabla1 LEFT JOIN tabla2 ON tabla1.id=tabla2.id
> WHERE tabla2.id IS NULL;

>Con eso deberías tener un improvement.

De todas formas es lento, no sé si existe una forma de hacer lo que necesito con consultas sql dado lo que ya está hecho por un tercero.

Si existe alguna otra técnica, sería interesante.

He pensado en escribir un caracter especial en un campo por cada uno de los registros de la tabla 2, luego en el select de la tabla 1 usar una comparación, como por ejemplo, campo NOT LIKE "%-id-%", evidéntemente no es una solución "elegante".

Bueno, sinó tocará rediseñar.

Saludos.-
LP


      ____________________________________________________________________________________
¡Todo sobre Amor y Sexo!
La guía completa para tu vida en Mujer de Hoy.                       
http://mujerdehoy.telemundo.yahoo.com/


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