Ciao a tutti, in delle viste ho delle colonne "standard", le quali però devono cambiare il loro contenuto in base al valore di un campo, nel senso che se questo valore è null, quelle colonne verranno riempite da determinati valori in base al valore di un secondo campo, in caso contrario (valore diverso da null), i valori saranno diversi.
So che il discorso è un po' contorto, ma ecco il join per farvi capire:


codice:
LEFT JOIN Tab ON IF(M.idA IS NULL,(AM.idM = TM.idM AND AM.idA = A.idA),                                                   (AM.idM = TM.idM AND AM.idAr = M.idAr))
Di funzionare funziona, il problema è che è di una lentezza esasperante nel caricare le informazioni.
Prima di utilizzare il valore NULL per il campo M.idAr, utilizzavo lo 0 ed i l join era più semplice, perchè facevo semplicemente il JOIN su M.idA = X AND M.idAr=0 (praticamente i record che non erano collegati alla tabella AR avevano quel campo pari a 0, quindi il join funzionava).
In caso contrario, il valore di M.idAr era diverso da 0 ed il join funzionava ugualmente...


Possibile che l'IF rallenti così tanto la query? Cosa sbaglio?