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:
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.Ver original
SELECT tabla1.campo1 FROM (tabla1 INNER JOIN tabla2 ON ( (tabla2.campo2 = tabla1.campo2 AND tabla2.campo5 >= tabla1.campo) OR (tabla2.campo3 = tabla1.campo3 AND tabla2.campo6 >= tabla1.campo) OR (tabla2.campo4 = tabla1.campo4 AND tabla2.campo7 >= tabla1.campo)) INNER JOIN tabla3 ON tabla3.id = tabla1.idtabla3 AND tabla3.fechainicial <= 'la fecha buscada' INNER JOIN tabla4 ON tabla3.id = tabla4.idtabla3 AND tabla3.fechafinal >= 'la fecha buscada') INNER JOIN tabla5 ON tabla5.id = tabla2.id_tabla5 AND tabla5.idtabla4 = tabla1.idtabla4 WHERE tabla2.id = valorbuscado GROUP BY tabla1.campo1
¿Se puede realizar directo en la consulta? ¿O se debe generar por separado?