Latest web development tutorials

koneksi SQL (JOIN)

SQL bergabung untuk garis dari dua atau lebih tabel bersama-sama.


SQL BERGABUNG

SQL klausa JOIN ke baris dari dua atau lebih tabel bersama-sama, berdasarkan bidang umum antara meja.

Jenis yang paling umum dari BERGABUNG: SQL INNER JOIN (sederhana BERGABUNG). SQL INNER JOIN BERGABUNG kembali semua baris yang memenuhi kondisi dari beberapa tabel.

Demo Database

Dalam tutorial ini, kita akan menggunakan database contoh w3big.

Berikut ini adalah yang dipilih "Website" data tabel:

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

Berikut adalah data "access_log" situs akses catatan tabel:

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)

Harap dicatat, "Website" meja "id" kolom titik "access_log" lapangan dalam tabel "site_id". Di atas dua tabel dengan "site_id" kolom menghubungkan.

Kemudian, jika kita menjalankan pernyataan SQL berikut (termasuk INNER JOIN):

contoh

SELECT Websites.id, Websites.name, access_log.count, access_log.date
DARI Website
INNER JOIN access_log
ON Websites.id = access_log.site_id;

Eksekusi SQL atas hasil output adalah sebagai berikut:



SQL berbeda BERGABUNG

Sebelum kita melanjutkan untuk menjelaskan contoh, mari kita daftar SQL yang berbeda BERGABUNG jenis Anda dapat menggunakan:

  • INNER JOIN: Jika tabel memiliki setidaknya satu pertandingan, kemudian kembali baris
  • LEFT JOIN: bahkan jika tidak ada pertandingan di tabel kanan, juga mengembalikan semua baris dari tabel kiri
  • RIGHT JOIN: bahkan jika tidak ada tabel pertandingan tersisa, juga kembali semua baris dari tabel kanan
  • LENGKAP BERGABUNG: Hanya salah satu meja ada pertandingan, ia mengembalikan baris