Latest web development tutorials

connexion SQL (JOIN)

SQL rejoindre pour la ligne à partir de deux ou plusieurs tables ensemble.


SQL JOIN

SQL clause JOIN aux rangées de deux ou plusieurs tables ensemble, sur la base des champs communs entre les tables.

Le type le plus commun de REJOIGNEZ: SQL INNER JOIN (simples JOIN). SQL INNER JOIN JOIN renvoie toutes les lignes qui satisfont aux conditions de plusieurs tables.

La base de données de démonstration

Dans ce tutoriel, nous allons utiliser la base de données de l'échantillon w3big.

Ce qui suit est un «Sites Web» sélectionnés de données de la table:

+----+--------------+---------------------------+-------+---------+
| 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     |
+----+---------------+---------------------------+-------+---------+

Voici les données "access_log" table d'enregistrement d'accès du site:

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)

S'il vous plaît noter, "Sites" table "id" point de colonne "access_log" champ dans la table "site_id". Les deux tableaux ci-dessus par "site_id" colonne de liaison.

Ensuite, si nous courons l'instruction SQL suivante (y compris INNER JOIN):

Exemples

SELECT Websites.id, Websites.name, access_log.count, access_log.date
à partir de sites internet
INNER JOIN access_log
ON Websites.id = access_log.site_id;

Exécutez le SQL ci-dessus des résultats de sortie sont les suivantes:



Différent SQL JOIN

Avant de continuer à expliquer par exemple, nous allons énumérer les différents types SQL JOIN vous pouvez utiliser:

  • INNER JOIN: Si la table a au moins un match, puis retour ligne
  • LEFT JOIN: même s'il n'y a pas de correspondance dans la table de droite, retourne également toutes les lignes de la table de gauche
  • INSCRIPTION À DROITE:même s'il n'y a pas de match gauche table, retourne également toutes les lignes de la table de droite
  • JOIN FULL: Juste une des tables il y a un match, il renvoie la ligne