tipi di JOIN:
sintassi
ALIAS1.`campo1`,FROM `TABELLA1$` ALIAS1 indico la prima tabella principale do un alias (facolativo ma consigliato)
ALIAS1.`campo2`,
ALIAS2.`campo3`,
.....
é possibile inserire più tipi di relazioni unendole con l'operatore logico AND
ON ALIAS1.`campoconfronto1` operatore ALIAS2.`campoconfronto1` AND campoconfronto1
ALIAS1.`campoconfronto2` operatore ALIAS2.`campoconfronto2` campoconfronto2
esempio: estraggo i dati da due tabelle Amici e Colleghi solo quelli con stesso dipartimento
SELECT
AMICI.`Nome` AS `Nome AMICI`,
AMICI.`Cognome` AS `Cognome AMICI`,
AMICI.`Dipartimento` AS `Dipartimento AMICI`,
AMICI.`Fonte` AS `Fonte AMICI`,
COLLEGHI.`Nome` AS `Nome COLLEGHI`,
COLLEGHI.`Cognome` AS `Cognome COLLEGHI`,
COLLEGHI.`Dipartimento` AS `Dipartimento COLLEGHI`,
COLLEGHI.`Fonte` AS `Fonte COLLEGHI`
esempio: filtro i dati della Tabella1 utilizzando una Tabella2 a cui setto un criterio WHERE
SELECT
COMPLETO.`campo confronto`, occorre indicare alias (COMPELTO) perché altrimenti da conflittoFROM `TABELLA1$` COMPLETO
`campo valore`
SELECT) LISTA`campo confronto`FROM `TABELLA2$`
WHERE `campo criterio` = xxxx criterio del limite nella Tabella2
ALIAS1.`campo1`,FROM indico la prima SELECT principale do un alias
ALIAS1.`campo2`,
ALIAS2.`campo3`,
....
SELECT) ALIAS1 va sempre indicato un alias (senza comando AS)
....
SELECT) ALIAS2
....
FULL OUTER o CROSS JOIN
dato che Excel non accetta FULL OUTER o CROSS JOIN per crearli si fa un LEFT OUTER JOIN UNION RIGHT OUTER JOIN
si usa UNION (attento usa UNION non UNION ALL per togliere i doppioni)
sintassi Join mutipli:
attento: Excel non accetta join mutipli, cioé più join nella stessa query di seguito
per fare join mutipli occorre includere un join dentro l'altro e così via
SELECT
.....
SELECT....
FROM....
JOIN primo join....ON ....
.....ON ALIAS1.CAMPO = ALIAS2.CAMPO
sintassi LEFT Join per usare una seconda tabella come LOOKUP
nel caso si ha una tabella con i dati ma si vuole trovare un dato in un campo legato a uno della tabella dei dati di origine
é come fare una formula LOOKUP in Excel
SELECT
TABELLADATI.`campo origine`,
LOOKUP.`campo trovato`,
SELECT) TABELLADATI`campo origine`,
FROM `TABELLA1$`
WHERE ....
SELECT) LOOKUPDISTINCT `campo origine`,FROM `TABELLA2$`
`campo trovato`