Tema: duda con if
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/07/2013, 21:34
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

Cita:
donde la expresión1 seria un comparativo entre dos select que hago para saber si el valor de una columna es igual en la columna de otra tabla seria algo como

if (select... < select... , exp2)
IF() en ese contexto es una función que devuelve un valor en base a una comparación lógica, pero no ejecuta una sentencia en forma condicional. No es ese el sentido, y no puedes poner subconsultas dentro de la función.
Además, para saber si un valor de un campo en una tabla es igual, mayor, menor o diferente respecto de otro campo de otra tabla, se usan INNER JOIN, LEFT JOIN o RIGHT JOIN... No funciones así.
Me da la impresión de que no has estudiado suficientemente sobre SQL:

Cita:
y la expresión2 seria un insert que se ejecuta en caso de que se cumpla la comparación entre los dos valores arrojados por los dos select de la expresión1
No. En MySQL no sólo no existen sentencias condicionales, sino que además los DBMS que conozco no permiten hacer una consulta condicional donde se pueda seleccionar y/o insertar en la misma sentencia como lo estás describiendo.

Creo que estás planteando mal tu solución. Lo que describes se puede lograr por medio de stored procedures, no de sentencias únicas, y es de ese modo que se crea ese tipo de lógicas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)