Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

duda con IF EXISTS

Estas en el tema de duda con IF EXISTS en el foro de Mysql en Foros del Web. Hola, tengo dos entidades, Ensayo y Compuesto Compuesto -------------- Id_compuesto ....... Ensayo ------------- Id_ensayo ......... ....... Id_compuesto Necesito saber si un compuesto tiene asociado en ...
  #1 (permalink)  
Antiguo 16/10/2008, 02:55
 
Fecha de Ingreso: enero-2008
Mensajes: 61
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta duda con IF EXISTS

Hola, tengo dos entidades, Ensayo y Compuesto

Compuesto
--------------
Id_compuesto
.......

Ensayo
-------------
Id_ensayo
.........
.......
Id_compuesto




Necesito saber si un compuesto tiene asociado en la tabla Ensayo un ensayo.

algo así pero no se como seria la select, osea q me devuelva 0 filas sería no existe
si me devuelve > 0 filas si existe.

(No se que debería poner aquí) If exists (Select e.Id_Compuesto from ensayo e, compuesto c where E.Id_compuesto = C.Id_compuesto).

Ala ,ahi queda eso, espero por mi bien que alguien sepa lo que pregunto.

Última edición por oscarinho; 16/10/2008 a las 02:57 Razón: Fallo tabulacion
  #2 (permalink)  
Antiguo 16/10/2008, 05:20
Avatar de 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, 4 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)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:31.