connessione SQL (JOIN)
Join SQL per la linea da due o più tabelle insieme.
SQL JOIN
Join SQL clausola ai righe da due o più tabelle insieme, sulla base di campi comuni tra le tabelle.
Il tipo più comune di JOIN: SQL INNER JOIN (semplice join). SQL INNER JOIN JOIN restituisce tutte le righe che soddisfano le condizioni da più tabelle.
Il database demo
In questo tutorial, useremo database di esempio w3big.
Il seguente è un selezionati "siti web" dati della tabella:
+----+--------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+--------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | 本教程 | http://www.w3big.com/ | 4689 | CN | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
Ecco i dati "access_log" tabella di accesso al sito di registrazione:
mysql> SELECT * FROM access_log; +-----+---------+-------+------------+ | aid | site_id | count | date | +-----+---------+-------+------------+ | 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 | | 9 | 3 | 201 | 2016-05-17 | +-----+---------+-------+------------+ 9 rows in set (0.00 sec)
Si prega di notare, "siti web" tabella "id" punto di colonna "access_log" campo nella "site_id" tavolo. Quanto sopra due tavoli "site_id" linking colonna.
Poi, se si corre la seguente istruzione SQL (compreso INNER JOIN):
Esempi
da siti web
INNER JOIN access_log
ON Websites.id = access_log.site_id;
Eseguire SQL sopra i risultati di uscita sono i seguenti:
Diverso SQL JOIN
Prima di continuare a spiegare esempio, cerchiamo di elencare le diverse SQL JOIN tipi che è possibile utilizzare:
- INNER JOIN: Se la tabella ha almeno una partita, per poi tornare fila
- LEFT JOIN: anche se non vi è alcuna corrispondenza nella tabella a destra, riporta anche tutte le righe della tabella di sinistra
- RIGHT JOIN: anche se non c'è nessuna tabella corrispondono left, restituisce anche tutte le righe della tabella di destra
- PIENA JOIN: Solo uno dei tavoli c'è una corrispondenza, restituisce la riga