Mysql inner bergabung dengan 3 tabel

Di MySQL INNER JOIN memilih semua baris dari kedua tabel yang berpartisipasi untuk muncul di hasil jika dan hanya jika kedua tabel memenuhi kondisi yang ditentukan dalam klausa ON. JOIN, CROSS JOIN, dan INNER JOIN adalah persamaan sintaksis. Dalam SQL standar, mereka tidak setara. INNER JOIN digunakan dengan klausa ON, CROSS JOIN digunakan sebaliknya

Presentasi bergambar MySQL INNER JOIN

Mysql inner bergabung dengan 3 tabel

Sintaks MySQL INNER JOIN

MySQL mendukung sintaks JOIN berikut untuk table_references (Referensi tabel juga dikenal sebagai ekspresi gabungan. ) bagian dari pernyataan SELECT dan pernyataan UPDATE dan DELETE multi-tabel

table_references:
    escaped_table_reference [, escaped_table_reference] ...

escaped_table_reference:
    table_reference
  | { OJ table_reference }

table_reference:
    table_factor
  | join_table

table_factor:
    tbl_name [PARTITION (partition_names)] 
        [[AS] alias] [index_hint_list]
  | table_subquery [AS] alias
  | ( table_references )

join_table:
    table_reference [INNER | CROSS] JOIN table_factor [join_condition]
  | table_reference STRAIGHT_JOIN table_factor
  | table_reference STRAIGHT_JOIN table_factor ON conditional_expr
  | table_reference {LEFT|RIGHT} [OUTER] JOIN table_reference join_condition
  | table_reference NATURAL [{LEFT|RIGHT} [OUTER]] JOIN table_factor

join_condition:
    ON conditional_expr
  | USING (column_list)

index_hint_list:
    index_hint [, index_hint] ...

index_hint:
    USE {INDEX|KEY}
      [FOR {JOIN|ORDER BY|GROUP BY}] ([index_list])
  | IGNORE {INDEX|KEY}
      [FOR {JOIN|ORDER BY|GROUP BY}] (index_list)
  | FORCE {INDEX|KEY}
      [FOR {JOIN|ORDER BY|GROUP BY}] (index_list)

index_list:
    index_name [, index_name] ...

Contoh. JOIN DALAM MySQL

Saat menggabungkan catatan dari lebih dari satu tabel, pengguna perlu menunjukkan bagaimana catatan dalam tabel dapat dicocokkan dengan catatan di tabel lainnya. Karena kedua tabel memiliki kolom cate_id, kita dapat mencocokkan menggunakan kolom tersebut. Klausa ON digunakan untuk mencocokkan record dalam dua tabel, berdasarkan nilai kolom cate_id. Penggunaan INNER JOIN menggabungkan tabel. INNER JOIN memungkinkan baris dari salah satu tabel muncul di hasil jika dan hanya jika kedua tabel memenuhi kondisi yang ditentukan dalam klausa ON

Dalam contoh ini, klausa ON menentukan bahwa kolom cate_id dari tabel book_mast dan kategori harus cocok. Jika cate_id tidak muncul di kedua tabel, baris tidak akan muncul di hasil karena kondisi di klausa ON gagal. Hanya kategori tersebut yang akan berpartisipasi dalam GABUNG yang bukunya ditulis dalam bahasa INGGRIS

Kode

SELECT book_mast.book_id,book_mast.book_name,cate_descrip           
FROM book_mast 
INNER JOIN category          
ON book_mast.cate_id=category.cate_id        
WHERE book_mast.pub_lang="English";

_

Ekspresi Aljabar Relasional

Mysql inner bergabung dengan 3 tabel

Pohon Aljabar Relasional

Mysql inner bergabung dengan 3 tabel

Tabel sampel. book_mast


Tabel sampel. kategori


Keluaran Sampel

mysql> SELECT book_mast.book_id,book_mast.book_name,cate_descrip           
    -> FROM book_mast 
    -> INNER JOIN category          
    -> ON book_mast.cate_id=category.cate_id        
    -> WHERE book_mast.pub_lang="English";
+---------+-------------------------------------+--------------+
| book_id | book_name                           | cate_descrip |
+---------+-------------------------------------+--------------+
| BK001   | Introduction to Electrodynamics     | Science      | 
| BK002   | Understanding of Steel Construction | Technology   | 
| BK004   | Transfer  of Heat and Mass          | Technology   | 
| BK010   | Fundamentals of Thermodynamics      | Technology   | 
| BK012   | The Nature  of World                | Nature       | 
| BK009   | Mental Health Nursing               | Medical      | 
+---------+-------------------------------------+--------------+
6 rows in set (0.04 sec)

skrip PHP

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>example-inner-join-with-multiple-tables php mysql examples | w3resource</title>
<meta name="description" content="example-inner-join-with-multiple-tables php mysql examples | w3resource">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="row">
<div class="col-md-12">
<h2>List of the book ids, name of the book and category description:</h2>
<table class='table table-bordered'>
<tr>
<th>Book ID</th><th>Name of the book</th><th>Category description</th>
</tr>
<?php
$hostname="your_hostname";
$username="your_username";
$password="your_password";
$db = "your_dbname";
$dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password);
foreach($dbh->query('SELECT book_mast.book_id,book_mast.book_name,cate_descrip
FROM book_mast
INNER JOIN category
ON book_mast.cate_id=category.cate_id
WHERE book_mast.pub_lang="English"') as $row) {
echo "<tr>";
echo "<td>" . $row['book_id'] . "</td>";
echo "<td>" . $row['book_name'] . "</td>";
echo "<td>" . $row['cate_descrip'] . "</td>"; 
echo "</tr>";
}
?>
</tbody></table>
</div>
</div>
</div>
</body>
</html>

Lihat contoh di browser

Contoh. MySQL INNER BERGABUNG dengan alias

Pernyataan MySQL berikut mengembalikan id buku, nama buku, id penerbit, deskripsi kategori dan bahasa penerbit, di mana bahasa penerbit adalah bahasa Inggris dan id penerbit tidak sama dengan P004. Perhatikan bahwa alias telah digunakan untuk merujuk nama kolom. INNER JOIN dilakukan berdasarkan kondisi bahwa id kategori di tabel book_mast juga harus ada di tabel kategori

Kode

SELECT bk.book_id,bk.book_name,bk.pub_id,ca.cate_descrip,bk.pub_lang 
FROM book_mast AS bk
INNER JOIN category AS ca  ON bk.cate_id=ca.cate_id  AND
bk.pub_lang="English" AND bk.pub_id<>'P004';

_

Ekspresi Aljabar Relasional

Mysql inner bergabung dengan 3 tabel

Pohon Aljabar Relasional

Mysql inner bergabung dengan 3 tabel

Tabel sampel. book_mast


Keluaran Sampel

mysql> SELECT bk.book_id,bk.book_name,bk.pub_id,ca.cate_descrip,bk.pub_lang 
    -> FROM book_mast AS bk
    -> INNER JOIN category AS ca  ON bk.cate_id=ca.cate_id  AND
    -> bk.pub_lang='English' AND bk.pub_id<>'P004';
+---------+-------------------------------------+--------+--------------+----------+
| book_id | book_name                           | pub_id | cate_descrip | pub_lang |
+---------+-------------------------------------+--------+--------------+----------+
| BK001   | Introduction to Electrodynamics     | P003   | Science      | English  | 
| BK002   | Understanding of Steel Construction | P001   | Technology   | English  | 
| BK010   | Fundamentals of Thermodynamics      | P007   | Technology   | English  | 
| BK012   | The Nature  of World                | P008   | Nature       | English  | 
| BK009   | Mental Health Nursing               | P007   | Medical      | English  | 
+---------+-------------------------------------+--------+--------------+----------+
5 rows in set (0.00 sec)

MySQL INNER JOIN menggunakan tiga tabel

Tabel sampel

table - doctors
+-------+---------+
| docid | dname   |
+-------+---------+
|     1 | A.VARMA | 
|     2 | D.GOMES | 
+-------+---------+


table - specialize
+------+----------+-------+
| spid | desc     | docid |
+------+----------+-------+
|    1 | special1 |     1 | 
|    2 | special2 |     2 | 
+------+----------+-------+


table - timeschedule
+-----+------+----------+-------+
| tid | tday | sit_time | docid |
+-----+------+----------+-------+
|   1 | MON  | 17:00:00 |     1 | 
|   2 | WED  | 08:00:00 |     1 | 
|   3 | TUE  | 16:00:00 |     2 | 
|   4 | FRI  | 09:00:00 |     2 | 
+-----+------+----------+-------+
_

Tabel di atas saling berhubungan. Di dokter, spesialisasi dan tabel jadwal waktu, docid, spid dan tid adalah kunci utama secara berurutan. Docid pada tabel spesialisasi dan tabel jadwal waktu merupakan foreign key yang menjadi acuan primary key docid pada tabel doctor.

Jika kita ingin semua catatan untuk dokter spesialis1 dan duduk di kamarnya pada hari Rabu (Rabu) dalam waktu jadwalnya, SQL berikut dapat digunakan-

Bagaimana cara menggabungkan tiga tabel dengan gabungan dalam di MySQL?

Dimungkinkan untuk menggunakan beberapa pernyataan gabungan secara bersamaan untuk menggabungkan lebih dari satu tabel secara bersamaan. Untuk melakukannya, Anda menambahkan pernyataan INNER JOIN kedua dan pernyataan ON kedua untuk menunjukkan tabel ketiga dan hubungan kedua .

Bisakah kita menggunakan gabungan dalam untuk 3 tabel?

Cara paling umum untuk menggabungkan tiga tabel adalah seperti ini. SELECT * FROM Table1 INNER JOIN Table2 ON Kondisi INNER JOIN Table3 ON Kondisi ; . Anda juga dapat menggabungkan jenis gabungan jika diperlukan (contoh di bawah).

Bagaimana cara saya menggabungkan beberapa tabel dalam SQL?

Menggunakan INNER JOIN dengan dua, tiga, empat, atau lebih banyak tabel adalah mungkin. Anda cukup menambahkan kata kunci INNER JOIN di akhir kriteria join untuk join sebelumnya . Sintaksnya terlihat seperti ini. PILIH kolom_Anda DARI table1 INNER JOIN table2 ON table1.

Bagaimana cara mendapatkan data dari 3 tabel di SQL?

Untuk melakukannya, kita perlu menggunakan kueri gabungan untuk mendapatkan data dari beberapa tabel. .
PILIH hal. p_id, hal. cus_id, hal. p_name, c1. nama1, c2. nama2
DARI produk SEBAGAI p
KIRI GABUNG pelanggan1 SEBAGAI c1
Pada p. cus_id=c1. cus_id
KIRI GABUNG pelanggan2 SEBAGAI c2
Pada p. cus_id = c2. cus_id