Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/10/2008, 05:20
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: duda con IF EXISTS

IF EXISTS se usa para establecer la existencia o no de TABLAS, PROCEDURES, FUNCTIONS o TRIGGERS. La comparación que estás tratando de hacer se realiza con la cláusula IN, en el contexto de una subconsulta o una lista de valores.

Código sql:
Ver original
  1. SELECT a, b, c
  2. FROM tabla
  3. WHERE a IN
  4.  (SELECT e.Id_Compuesto
  5. FROM ensayo e INNER JOIN compuesto c ON  E.Id_compuesto = C.Id_compuesto);

1. No uses el WHERE para hacer una selección del tipo E.Id_compuesto = C.Id_compuesto. Si ambos corresponden al mismo valor y dominio, entonces se deben poner con un ON o un USING en el JOIN. MySQL no sabe cómo optimizar un WHERE, pero sin un JOIN.
2. La cláusula IN (subconsulta) solamente compara UN valor por vez, por lo que la subconsulta debe ser sobre un sólo campo. Para más datos, ver: 13.2.8. Sintaxis de subconsultas
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)