Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/12/2013, 16:26
yera2002
 
Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 16 años, 8 meses
Puntos: 2
Sentencia SQL

Hola:

Tengo varias tablas que se unen entre si con id_tabla, ahora bien, dentro de una de ellas tengo un campo que dependiendo de su valor puede hacer o no un JOIN a otra tabla. Ej:
Código SQL:
Ver original
  1. SELECT tabla1.campo1
  2. FROM (tabla1 INNER JOIN tabla2 ON (
  3. (tabla2.campo2 = tabla1.campo2 AND tabla2.campo5 >= tabla1.campo) OR
  4. (tabla2.campo3 = tabla1.campo3 AND tabla2.campo6 >= tabla1.campo) OR
  5. (tabla2.campo4 = tabla1.campo4 AND tabla2.campo7 >= tabla1.campo))
  6. INNER JOIN tabla3 ON tabla3.id = tabla1.idtabla3 AND tabla3.fechainicial <= 'la fecha buscada'
  7. INNER JOIN tabla4 ON tabla3.id = tabla4.idtabla3
  8. AND tabla3.fechafinal >= 'la fecha buscada')
  9. INNER JOIN tabla5 ON tabla5.id = tabla2.id_tabla5 AND tabla5.idtabla4 = tabla1.idtabla4
  10. WHERE tabla2.id = valorbuscado
  11. GROUP BY tabla1.campo1
Ahora bien, el ultimo JOIN sobre la tabla 5 quiero excluirlo si por ejemplo el campo2 de la tabla 1 trae un valor 0 y si trae valor diferente anexarlo.

¿Se puede realizar directo en la consulta? ¿O se debe generar por separado?

Última edición por gnzsoloyo; 10/12/2013 a las 16:43