INNER JOIN
Gli argomenti di questa pagina
- Sintassi per la INNER JOIN
- Primi esempi semplici sulle tabelle sql_agenda e sql_citta
- Statistiche sui libri
- JOIN su più tabelle
- JOIN con doppia specifica
- Esempio di JOIN con ALIAS su tabelle
|
Sintassi per la INNER JOIN
La sintassi base per la INNER JOIN non è complessa.
SELECT elenco campi
FROM tabella1
INNER JOIN tabella2
ON specifica di JOIN
WHERE condizioni di ricerca
ORDER BY elenco campi
Primi esempi semplici sulle tabelle sql_agenda e sql_citta
Questa è la struttura delle due tabelle usate per gli esempi.
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
cognome |
varchar(250) |
NO |
|
|
|
nome |
varchar(250) |
NO |
|
|
|
indirizzo |
varchar(250) |
NO |
|
|
|
id_citta |
int |
NO |
|
|
|
data_nascita |
date |
NO |
|
|
|
telefono |
varchar(250) |
NO |
|
|
|
I campi della tabella sql_agenda: id, cognome, nome, indirizzo, id_citta, data_nascita, telefono |
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
cap |
varchar(10) |
YES |
|
|
|
citta |
varchar(250) |
YES |
|
|
|
prov |
varchar(10) |
YES |
|
|
|
I campi della tabella sql_citta: id, cap, citta, prov |
Creare un elenco dei miei contatti e della città dove abitano
1
2
3
4
5
6
7
8
|
<?php $Query = "SELECT sql_agenda.cognome, sql_agenda.nome, sql_citta.cap, sql_citta.citta, sql_citta.prov FROM sql_agenda INNER JOIN sql_citta ON sql_agenda.id_citta = sql_citta.id "; ?>
|
|
103 record trovati
15 record visualizzati
cognome |
nome |
cap |
citta |
prov |
Migliavacca |
Luigi |
38030 |
Varena |
TN |
Rizzi |
Carlo |
38030 |
Varena |
TN |
Liberali |
Franca |
23821 |
Abbadia Lariana |
LC |
Di Maggio |
Mario |
67010 |
Ville di Fano |
AQ |
Scicchitano |
Andrea |
67010 |
Ville di Fano |
AQ |
Edelvisi |
Maurizio |
67010 |
Ville di Fano |
AQ |
Gerardini |
Silvano |
67010 |
Ville di Fano |
AQ |
Pasotti |
Alessio |
20050 |
Correzzana |
MB |
Calvi |
Giovanni |
58010 |
Marsiliana |
GR |
Poggi |
Giuseppe |
23821 |
Abbadia Lariana |
LC |
Curti |
Oreste |
67010 |
Ville di Fano |
AQ |
Borsotti |
Mirella |
67010 |
Ville di Fano |
AQ |
Franchinotti |
Anna |
23821 |
Abbadia Lariana |
LC |
Pischedda |
Giovanni |
60015 |
Falconara Alta |
AN |
Maini |
Marilena |
12011 |
Borgo S. Dalmazzo |
CN |
... |
... |
... |
... |
... |
|
Creare un elenco dei miei contatti e della città dove abitano, ma mostra più dettagli sui miei contatti
1
2
3
4
5
6
7
8
9
10
|
<?php $Query_join = "SELECT sql_agenda.cognome, sql_agenda.nome, sql_agenda.indirizzo, sql_citta.id AS id_citta, sql_citta.cap, sql_citta.citta, sql_citta.prov, DATE_FORMAT( sql_agenda.data_nascita, '%d-%m-%Y' ) AS nato, sql_agenda.telefono FROM sql_agenda INNER JOIN sql_citta ON sql_agenda.id_citta = sql_citta.id "; ?>
|
|
103 record trovati
15 record visualizzati
cognome |
nome |
indirizzo |
id_citta |
cap |
citta |
prov |
nato |
telefono |
Migliavacca |
Luigi |
VIA P. FIMIANI TRIVIO |
21 |
38030 |
Varena |
TN |
22-01-2004 |
084 41655 |
Rizzi |
Carlo |
VIA SABIN, 34/2 |
21 |
38030 |
Varena |
TN |
22-11-2007 |
07 9940508 |
Liberali |
Franca |
VIA DEL TUSCOLANO, 1 |
2 |
23821 |
Abbadia Lariana |
LC |
20-08-2004 |
036 348719 |
Di Maggio |
Mario |
TERMINAL CONTENITORI MOLO VII |
22 |
67010 |
Ville di Fano |
AQ |
21-05-2009 |
051 18752 |
Scicchitano |
Andrea |
VIA SABIN, 34/2 |
22 |
67010 |
Ville di Fano |
AQ |
12-01-1997 |
07 74891 |
Edelvisi |
Maurizio |
VIA MATTEO RICCI, 12 |
22 |
67010 |
Ville di Fano |
AQ |
02-07-1987 |
079 89428 |
Gerardini |
Silvano |
Z.I SAMBUCETO |
22 |
67010 |
Ville di Fano |
AQ |
12-08-2009 |
012 164848 |
Pasotti |
Alessio |
VIA SABIN, 34/2 |
13 |
20050 |
Correzzana |
MB |
14-11-1987 |
05 9552713 |
Calvi |
Giovanni |
VIA SABIN, 34/2 |
18 |
58010 |
Marsiliana |
GR |
26-07-1987 |
044 5602773 |
Poggi |
Giuseppe |
VIA SABIN, 34/2 |
2 |
23821 |
Abbadia Lariana |
LC |
25-01-1987 |
08 0640120 |
Curti |
Oreste |
STRADA MARCHESANE, 43_4 |
22 |
67010 |
Ville di Fano |
AQ |
26-06-1988 |
027 42781 |
Borsotti |
Mirella |
VIA DEL TUSCOLANO, 1 |
22 |
67010 |
Ville di Fano |
AQ |
19-07-1987 |
09 379786 |
Franchinotti |
Anna |
VIA BREDINA, 6 |
2 |
23821 |
Abbadia Lariana |
LC |
10-05-2009 |
062 8880 |
Pischedda |
Giovanni |
VIA MATTEO RICCI, 12 |
14 |
60015 |
Falconara Alta |
AN |
08-08-1999 |
07 628585 |
Maini |
Marilena |
MACRON TICHON STREET, 27 |
6 |
12011 |
Borgo S. Dalmazzo |
CN |
20-03-2002 |
02 6638 |
... |
... |
... |
... |
... |
... |
... |
... |
... |
|
Creare un elenco dei miei contatti nati dopo il 2000 e della città dove abitano
1
2
3
4
5
6
7
8
9
10
11
|
<?php $Query = "SELECT sql_agenda.cognome, sql_agenda.nome, DATE_FORMAT( sql_agenda.data_nascita, '%d-%m-%Y' ) AS nato, sql_citta.cap, sql_citta.citta, sql_citta.prov FROM sql_agenda INNER JOIN sql_citta ON sql_agenda.id_citta = sql_citta.id WHERE data_nascita > '1999-12-31' ORDER BY data_nascita "; ?>
|
|
41 record trovati
15 record visualizzati
cognome |
nome |
nato |
cap |
citta |
prov |
De Paula |
Loredana |
20-01-2000 |
06031 |
Bevagna |
PG |
Dionisio |
Andrea |
28-01-2000 |
39013 |
Moso in passiria |
BZ |
Basilio |
Davide |
26-09-2000 |
06031 |
Bevagna |
PG |
Zeva |
Oronza |
13-02-2001 |
17010 |
Giusvalla |
SV |
Orlandi |
Enrico |
13-02-2001 |
67010 |
Ville di Fano |
AQ |
Mongelli |
Natalina |
16-04-2001 |
06031 |
Bevagna |
PG |
Castagna |
Attilio |
20-08-2001 |
06031 |
Bevagna |
PG |
Derosa |
Valeria |
14-11-2001 |
06031 |
Bevagna |
PG |
Zerlenga |
Francesco |
25-01-2002 |
23821 |
Abbadia Lariana |
LC |
Maini |
Marilena |
20-03-2002 |
12011 |
Borgo S. Dalmazzo |
CN |
Helvetia |
Italia |
12-08-2002 |
89030 |
Condofuri |
RC |
Broccardo |
Andrea |
22-11-2002 |
23821 |
Abbadia Lariana |
LC |
Buscetti |
Editta |
25-01-2003 |
06031 |
Bevagna |
PG |
Scicchitano |
Pierluigi |
02-05-2003 |
23821 |
Abbadia Lariana |
LC |
Migliavacca |
Luigi |
22-01-2004 |
38030 |
Varena |
TN |
... |
... |
... |
... |
... |
... |
|
Statistiche sui libri
La tabella che ci dice quali sono i libri prestati è sql_lib_prestiti. Però in questa tabella i libri ed i clienti che li hanno presi in prestito non sono indicati esplicitamente ma solo tramite un ID (id_libro, id_iscritto) che fanno riferimento alla tabella sql_libri e sql_agenda dalle quali possiamo prelevare i dati completi (nella tabella sottostante le date non sono formattate ma vengono mostrate come sono registrate nel DB).
Questa è la struttura delle tre tabelle
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
id_libro |
int |
NO |
|
|
|
id_iscritto |
int |
NO |
|
|
|
data_prestito |
date |
YES |
|
|
|
data_restituzione |
date |
YES |
|
|
|
I campi della tabella sql_lib_prestiti: id, id_libro, id_iscritto, data_prestito, data_restituzione |
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
gruppo |
varchar(50) |
YES |
|
|
|
codice |
varchar(10) |
YES |
|
|
|
Titolo |
varchar(100) |
NO |
|
|
|
Autore |
varchar(150) |
YES |
|
|
|
prezzo |
decimal(8,2) |
NO |
|
|
|
quantita |
int |
NO |
|
|
|
I campi della tabella sql_libri: id, gruppo, codice, Titolo, Autore, prezzo, quantita |
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
cognome |
varchar(250) |
NO |
|
|
|
nome |
varchar(250) |
NO |
|
|
|
indirizzo |
varchar(250) |
NO |
|
|
|
id_citta |
int |
NO |
|
|
|
data_nascita |
date |
NO |
|
|
|
telefono |
varchar(250) |
NO |
|
|
|
I campi della tabella sql_agenda: id, cognome, nome, indirizzo, id_citta, data_nascita, telefono
|
Per questo motivo è necessario collegare la tabella sql_libri con la tabella sql_lib_prestiti in questa maniera
Mostra un elenco dei libri prestati
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php $Query = "SELECT sql_libri.id, sql_libri.Titolo, sql_libri.gruppo, DATE_FORMAT( sql_lib_prestiti.data_prestito, '%d-%m-%Y' ) AS prestato FROM sql_libri INNER JOIN sql_lib_prestiti ON sql_libri.id = sql_lib_prestiti.id_libro ORDER BY sql_lib_prestiti.data_prestito DESC "; ?>
|
|
10 record trovati
10 record visualizzati
id |
Titolo |
gruppo |
prestato |
20 |
Poser 4 Pro |
curiouslabs |
02-05-2014 |
2 |
Macromedia Flash 6 |
macromedia |
19-04-2014 |
2 |
Macromedia Flash 6 |
macromedia |
01-04-2014 |
8 |
Macromedia Spectra |
macromedia |
29-03-2014 |
21 |
Kai`s PhotoSoap2 |
scansoft |
10-03-2014 |
15 |
CorelDRAW |
corel |
13-02-2014 |
5 |
Adobe Photoshop 7.0 |
adobe |
20-01-2014 |
5 |
Adobe Photoshop 7.0 |
adobe |
15-03-2013 |
10 |
Adobe Digital Video Collection |
adobe |
02-02-2013 |
9 |
Adobe After Effects 5.5 |
adobe |
01-01-2012 |
|
Ora due Query complementari tra loro: con la prima vedo i libri che sono stati resi e con la seconda quelli che risultano non resi. In entrambi i casi viene effettuata una JOIN sulla tabella sql_lib_prestiti e la tabella sql_libri.
Mostra i libri prestati e non resi
1
2
3
4
5
6
7
|
<?php $Query = "SELECT sql_lib_prestiti.id_libro, sql_libri.Titolo, sql_libri.gruppo FROM sql_libri INNER JOIN sql_lib_prestiti ON sql_libri.id = sql_lib_prestiti.id_libro WHERE data_restituzione IS NULL "; ?>
|
|
5 record trovati
5 record visualizzati
id_libro |
Titolo |
gruppo |
20 |
Poser 4 Pro |
curiouslabs |
15 |
CorelDRAW |
corel |
2 |
Macromedia Flash 6 |
macromedia |
5 |
Adobe Photoshop 7.0 |
adobe |
10 |
Adobe Digital Video Collection |
adobe |
|
Mostra i libri prestati e resi
1
2
3
4
5
6
7
8
|
<?php $Query = "SELECT sql_lib_prestiti.id_libro, sql_libri.Titolo, sql_libri.gruppo, DATE_FORMAT( sql_lib_prestiti.data_restituzione, '%d-%m-%Y' ) AS reso FROM sql_libri INNER JOIN sql_lib_prestiti ON sql_libri.id = sql_lib_prestiti.id_libro WHERE data_restituzione IS NOT NULL "; ?>
|
|
5 record trovati
5 record visualizzati
id_libro |
Titolo |
gruppo |
reso |
2 |
Macromedia Flash 6 |
macromedia |
15-04-2014 |
8 |
Macromedia Spectra |
macromedia |
09-04-2014 |
5 |
Adobe Photoshop 7.0 |
adobe |
19-04-2013 |
9 |
Adobe After Effects 5.5 |
adobe |
10-04-2013 |
21 |
Kai`s PhotoSoap2 |
scansoft |
09-04-2014 |
|
JOIN su più tabelle
Per rispondere ad alcuni quesiti è necessario coinvolgere anche più di due tabelle come nel seguente esempio. Questa la struttura delle tabelle coinvolte
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
cognome |
varchar(250) |
NO |
|
|
|
nome |
varchar(250) |
NO |
|
|
|
indirizzo |
varchar(250) |
NO |
|
|
|
id_citta |
int |
NO |
|
|
|
data_nascita |
date |
NO |
|
|
|
telefono |
varchar(250) |
NO |
|
|
|
I campi della tabella sql_agenda: id, cognome, nome, indirizzo, id_citta, data_nascita, telefono |
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
gruppo |
varchar(50) |
YES |
|
|
|
codice |
varchar(10) |
YES |
|
|
|
Titolo |
varchar(100) |
NO |
|
|
|
Autore |
varchar(150) |
YES |
|
|
|
prezzo |
decimal(8,2) |
NO |
|
|
|
quantita |
int |
NO |
|
|
|
I campi della tabella sql_libri: id, gruppo, codice, Titolo, Autore, prezzo, quantita |
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
cap |
varchar(10) |
YES |
|
|
|
citta |
varchar(250) |
YES |
|
|
|
prov |
varchar(10) |
YES |
|
|
|
I campi della tabella sql_citta: id, cap, citta, prov |
Field |
Type |
Null |
Key |
Default |
Extra |
id |
int |
NO |
PRI |
|
auto_increment |
id_libro |
int |
NO |
|
|
|
id_iscritto |
int |
NO |
|
|
|
data_prestito |
date |
YES |
|
|
|
data_restituzione |
date |
YES |
|
|
|
I campi della tabella sql_lib_prestiti: id, id_libro, id_iscritto, data_prestito, data_restituzione |
La richiesta:
Dammi un elenco dei clienti che hanno preso dei libri
La richiesta sembra semplice. Tuttavia osservendo la struttura delle tabelle notiamo che non c'è un collegamento diretto che colleghi i Clienti con i libri. Per collegare i clienti (sql_agenda) con i libri (sql_libri) dovremo passare anche per la tabella del movimento dei libri (sql_lib_prestiti) collegando prima sql_agenda con sql_lib_prestiti, quindi sql_lib_prestiti con sql_libri, come è mostrato nella prossima Query.
1
2
3
4
5
6
7
8
|
<?php $Query = "SELECT sql_agenda.cognome, sql_agenda.nome, sql_libri.Titolo FROM sql_agenda INNER JOIN sql_lib_prestiti ON sql_agenda.id = sql_lib_prestiti.id_iscritto INNER JOIN sql_libri ON sql_lib_prestiti.id_libro = sql_libri.id ORDER BY sql_agenda.cognome, sql_agenda.nome "; ?>
|
|
10 record trovati
10 record visualizzati
cognome |
nome |
Titolo |
Alama |
Ornella |
CorelDRAW |
Alcantara |
Pinuccia |
Adobe Digital Video Collection |
Arquati |
Dorotea |
Adobe After Effects 5.5 |
Basilio |
Davide |
Macromedia Flash 6 |
Basilio |
Davide |
Kai`s PhotoSoap2 |
Bialetti |
Vincenzo |
Adobe Photoshop 7.0 |
Borsotti |
Mirella |
Poser 4 Pro |
Curti |
Oreste |
Adobe Photoshop 7.0 |
Orlandi |
Enrico |
Macromedia Spectra |
Scicchitano |
Andrea |
Macromedia Flash 6 |
|
Ora proviamo con un'altra richiesta che come la precedente sembra semplice ma la cui risoluzione richiede un percorso ancora più lungo. Le tabelle su cui si lavora sono sempre le solite quattro.
In quali città sono distribuiti i libri prestati?
Anche in questo caso occorre creare il percorso che unisce le due tabelle sql_libri e sql_citta
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<?php $Query = "SELECT sql_libri.Titolo, sql_libri.Autore, sql_citta.cap, sql_citta.citta, sql_citta.prov FROM sql_citta INNER JOIN sql_agenda ON sql_citta.id = sql_agenda.id_citta INNER JOIN sql_lib_prestiti ON sql_agenda.id = sql_lib_prestiti.id_iscritto INNER JOIN sql_libri ON sql_libri.id = sql_lib_prestiti.id_libro ORDER BY sql_libri.Titolo "; ?>
|
|
10 record trovati
10 record visualizzati
Titolo |
Autore |
cap |
citta |
prov |
Adobe After Effects 5.5 |
Shannyn Sossamon e Geri Halliwell |
35031 |
AbanoTerme |
PD |
Adobe Digital Video Collection |
Eddie Murphy e Nicole Mitchell |
12040 |
Isola di bene vagienna |
CN |
Adobe Photoshop 7.0 |
Kim Basinger |
67010 |
Ville di Fano |
AQ |
Adobe Photoshop 7.0 |
Kim Basinger |
06031 |
Bevagna |
PG |
CorelDRAW |
Joe Strummer |
67020 |
Castelvecchio calvisio |
AQ |
Kai`s PhotoSoap2 |
Tonya Lewis Lee |
06031 |
Bevagna |
PG |
Macromedia Flash 6 |
Shannyn Sossamon |
67010 |
Ville di Fano |
AQ |
Macromedia Flash 6 |
Shannyn Sossamon |
06031 |
Bevagna |
PG |
Macromedia Spectra |
Spike Lee e Tonya Lewis Lee |
67010 |
Ville di Fano |
AQ |
Poser 4 Pro |
Alec Baldwin |
67010 |
Ville di Fano |
AQ |
|
In questa Query invece delle città vengono mostrati i nomi dei clienti.
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php $Query = "SELECT sql_lib_prestiti.id, sql_libri.gruppo, sql_libri.codice, sql_libri.Titolo, sql_libri.Autore, sql_agenda.cognome, sql_agenda.nome, DATE_FORMAT( sql_lib_prestiti.data_prestito, '%d-%m-%Y' ) AS uscito, DATE_FORMAT( sql_lib_prestiti.data_restituzione, '%d-%m-%Y' ) AS reso FROM sql_lib_prestiti INNER JOIN sql_libri ON sql_libri.id = sql_lib_prestiti.id_libro INNER JOIN sql_agenda ON sql_agenda.id = sql_lib_prestiti.id_iscritto "; ?>
|
|
10 record trovati
10 record visualizzati
id |
gruppo |
codice |
Titolo |
Autore |
cognome |
nome |
uscito |
reso |
1 |
macromedia |
MC003 |
Macromedia Flash 6 |
Shannyn Sossamon |
Scicchitano |
Andrea |
01-04-2014 |
15-04-2014 |
2 |
macromedia |
MC007 |
Macromedia Spectra |
Spike Lee e Tonya Lewis Lee |
Orlandi |
Enrico |
29-03-2014 |
09-04-2014 |
3 |
curiouslabs |
CL001 |
Poser 4 Pro |
Alec Baldwin |
Borsotti |
Mirella |
02-05-2014 |
NULL |
4 |
corel |
CR001 |
CorelDRAW |
Joe Strummer |
Alama |
Ornella |
13-02-2014 |
NULL |
5 |
macromedia |
MC003 |
Macromedia Flash 6 |
Shannyn Sossamon |
Basilio |
Davide |
19-04-2014 |
NULL |
6 |
adobe |
AD001 |
Adobe Photoshop 7.0 |
Kim Basinger |
Curti |
Oreste |
20-01-2014 |
NULL |
7 |
adobe |
AD001 |
Adobe Photoshop 7.0 |
Kim Basinger |
Bialetti |
Vincenzo |
15-03-2013 |
19-04-2013 |
8 |
adobe |
AD003 |
Adobe Digital Video Collection |
Eddie Murphy e Nicole Mitchell |
Alcantara |
Pinuccia |
02-02-2013 |
NULL |
9 |
adobe |
AD002 |
Adobe After Effects 5.5 |
Shannyn Sossamon e Geri Halliwell |
Arquati |
Dorotea |
01-01-2012 |
10-04-2013 |
10 |
scansoft |
SS001 |
Kai`s PhotoSoap2 |
Tonya Lewis Lee |
Basilio |
Davide |
10-03-2014 |
09-04-2014 |
|
JOIN con doppia specifica
Possiamo fare questa richiesta:
Mostra i libri del gruppo adobe che sono stati prestati e a quali clienti sono stati prestati
La richiesta non è dissimile da quelle precedenti, ma questa volta c'è una condizione da rispettare e cioè che i libri che ci interessano sono quelli del gruppo adobe.
In questo caso possiamo comportarci in due modi: aggiungiamo un AND alla specifica della JOIN come ho fatto nella Query o, in alternativa, al posto della "AND sql_libri.gruppo = 'adobe'" possiamo usare la clausola WHERE (commentata alla fine della Query).
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php $Query = "SELECT sql_lib_prestiti.id, sql_agenda.cognome, sql_agenda.nome, sql_libri.gruppo, sql_libri.codice, sql_libri.Titolo, sql_libri.Autore, DATE_FORMAT( sql_lib_prestiti.data_prestito, '%d-%m-%Y' ) AS uscito, DATE_FORMAT( sql_lib_prestiti.data_restituzione, '%d-%m-%Y' ) AS reso FROM sql_lib_prestiti INNER JOIN sql_libri ON sql_libri.id = sql_lib_prestiti.id_libro INNER JOIN sql_agenda ON sql_agenda.id = sql_lib_prestiti.id_iscritto AND sql_libri.gruppo = 'adobe' "; // WHERE sql_libri.gruppo = 'adobe' ?>
|
|
4 record visualizzati
id |
cognome |
nome |
gruppo |
codice |
Titolo |
Autore |
uscito |
reso |
6 |
Curti |
Oreste |
adobe |
AD001 |
Adobe Photoshop 7.0 |
Kim Basinger |
20-01-2014 |
NULL |
7 |
Bialetti |
Vincenzo |
adobe |
AD001 |
Adobe Photoshop 7.0 |
Kim Basinger |
15-03-2013 |
19-04-2013 |
8 |
Alcantara |
Pinuccia |
adobe |
AD003 |
Adobe Digital Video Collection |
Eddie Murphy e Nicole Mitchell |
02-02-2013 |
NULL |
9 |
Arquati |
Dorotea |
adobe |
AD002 |
Adobe After Effects 5.5 |
Shannyn Sossamon e Geri Halliwell |
01-01-2012 |
10-04-2013 |
|
Esempio di JOIN con ALIAS su tabelle
Alle tabelle indicate in una Query, specie se complessa, è possibile assegnare un ALIAS, ossia un nome temporaneo che deve essere usato come riferimento nel resto della query. Una tipica applicazione degli ALIAS di tabella è quando si vuole assegnare identificatori a nomi di tabella lunghi per mantere leggibili le clausole JOIN.
Qui di seguito vediamo replicata una Query di questa pagina assegnando degli ALIAS ai nomi di tabelle.
1
2
3
4
5
6
7
8
9
10
11
|
<?php $Query = "SELECT agenda.cognome, agenda.nome, DATE_FORMAT( agenda.data_nascita, '%d-%m-%Y' ) AS nato, citta.cap, citta.citta, citta.prov FROM sql_agenda AS agenda INNER JOIN sql_citta AS citta ON agenda.id_citta = citta.id WHERE agenda.data_nascita > '1999-12-31' ORDER BY agenda.data_nascita "; ?>
|
|
41 record trovati
15 record visualizzati
cognome |
nome |
nato |
cap |
citta |
prov |
De Paula |
Loredana |
20-01-2000 |
06031 |
Bevagna |
PG |
Dionisio |
Andrea |
28-01-2000 |
39013 |
Moso in passiria |
BZ |
Basilio |
Davide |
26-09-2000 |
06031 |
Bevagna |
PG |
Zeva |
Oronza |
13-02-2001 |
17010 |
Giusvalla |
SV |
Orlandi |
Enrico |
13-02-2001 |
67010 |
Ville di Fano |
AQ |
Mongelli |
Natalina |
16-04-2001 |
06031 |
Bevagna |
PG |
Castagna |
Attilio |
20-08-2001 |
06031 |
Bevagna |
PG |
Derosa |
Valeria |
14-11-2001 |
06031 |
Bevagna |
PG |
Zerlenga |
Francesco |
25-01-2002 |
23821 |
Abbadia Lariana |
LC |
Maini |
Marilena |
20-03-2002 |
12011 |
Borgo S. Dalmazzo |
CN |
Helvetia |
Italia |
12-08-2002 |
89030 |
Condofuri |
RC |
Broccardo |
Andrea |
22-11-2002 |
23821 |
Abbadia Lariana |
LC |
Buscetti |
Editta |
25-01-2003 |
06031 |
Bevagna |
PG |
Scicchitano |
Pierluigi |
02-05-2003 |
23821 |
Abbadia Lariana |
LC |
Migliavacca |
Luigi |
22-01-2004 |
38030 |
Varena |
TN |
... |
... |
... |
... |
... |
... |
|