io lo chiedo qui....
ho due tabelle.....una con 260.000 righe......ed una relazionata a questa (relazione uno a uno) di qualche decina di righe....
in questo contesto voglio fare una ricerca (e poi popolare un datagrid)....e la faccio così...purtroppo non ho trovato nulla di meglio....
vorrei sapere se qualcuno mi può addolcire il codice....eeheh....grazie....
codice:
if tbxNote.text = "" then 'escludo dalla select il campo note, altrimenti il left join mi restituisce solo le righe che lo contengono (not null)
strSql = "SELECT * FROM tbllistino LEFT JOIN tblnote ON (tbllistino.codice = tblnote.codice) AND (tbllistino.codice_prodotto = tblnote.codice_prodotto) AND (tbllistino.sigla = tblnote.sigla) WHERE tbllistino.codice_prodotto LIKE :codice_prodotto AND tbllistino.sigla LIKE :sigla AND tbllistino.descrizione LIKE :descrizione LIMIT 100;"
else 'se effettuo la ricerca anche tramite il campo note allora il left join mi sta bene
strSql = "SELECT * FROM tbllistino LEFT JOIN tblnote ON (tbllistino.codice = tblnote.codice) AND (tbllistino.codice_prodotto = tblnote.codice_prodotto) AND (tbllistino.sigla = tblnote.sigla) WHERE tbllistino.codice_prodotto LIKE :codice_prodotto AND tbllistino.sigla LIKE :sigla AND tbllistino.descrizione LIKE :descrizione AND tblnote.note LIKE :note LIMIT 100;"
end if
così funziona, ma mi sa che posso fare lo stesso senza if then else, con un'unica select...