Latest web development tutorials

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

SELEZIONARE Websites.id, Websites.name, access_log.count, access_log.date
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