Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara menguji di dalam dan di antara masing-masing dari beberapa tabel?

Nah, Leonid adalah tabel yang tepat bergabung adalah yang Anda butuhkan. "Sebuah klausa SQL JOIN digunakan untuk menggabungkan baris dari dua atau lebih tabel, berdasarkan bidang umum di antara mereka." - http://www.w3schools.com/sql/sql_join.asp sederhana seperti itu. Anda mengatakan untuk tabel A dan tabel B bahwa bidang umum adalah ShopLot dan untuk tabel B dan C adalah ContainerRef yang cocok dengan ContainerID.

Mari kita lakukan langkah demi langkah.

Jadi pertama-tama mari kita pilih kolom dari tabel yang ingin kita tampilkan

 SELECT Table_A.ID, Table_A.UnitTypeID, Table_A.ShopLot, Table_B.ID, Table_B.UnitTypeID,
         Table_B.ContainerRef, Table_C.ID, Table_C.PartTypeID

Anda lihat hanya ada satu ShopLot dan ContainerRef karena itu adalah bidang umum seperti yang kami katakan sebelumnya dan tidak perlu menampilkan tanggal yang sama dua kali dalam satu baris.

Langkah selanjutnya adalah melihat dari mana kita MEMILIH kolom ini. Pada langkah ini kami menggabungkan baris dari tabel terpisah ini dan pada dasarnya membuat satu tabel dengan semua kolom ini dari pernyataan pilih. Itu akan terlihat seperti ini

FROM Table_A
INNER JOIN Table_B
ON Table_A.ShopLot = Table_B.ShopLot
INNER JOIN Table_C
ON Table_B.ContainerRef = Table_C.ContainerId

Apa yang terjadi di sini. Pertama kita katakan SELECT(something) FROM Table_A dan (inner) join dengan Table_B... Lalu ada pertanyaan bagaimana cara menggabungkan kedua table ini (berdasarkan apa?)? Dan jawabannya adalah PADA bidang Table_A.ShopLot dan Table_B.ShopLot. Ambil satu baris dari Table_A, lihat nilai bidang ShopLot dan temukan semua baris dengan nilai itu (jika ada) di Table_B dan gabungkan. Table_C digabungkan dengan cara yang sama hanya nama bidang yang diubah.

Kemudian langkah ketiga adalah membuat klausa WHERE. Ini mungkin bagian termudah karena kita sekarang memiliki satu meja besar dan kita hanya perlu mengatakan apa yang kita butuhkan

WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG' 
  AND Table_C.PartTypeID='FLIES'

Dan itu saja. Saya mencoba membuatnya sesederhana mungkin. Saya yakin ada banyak penjelasan bather online hanya perlu melakukan sedikit pencarian...

Berikut kode lengkapnya:

SELECT Table_A.ID, Table_A.UnitTypeID, Table_A.ShopLot, Table_B.ID, Table_B.UnitTypeID,
         Table_B.ContainerRef, Table_C.ID, Table_C.PartTypeID
FROM Table_A
INNER JOIN Table_B
ON Table_A.ShopLot = Table_B.ShopLot
INNER JOIN Table_C
ON Table_B.ContainerRef = Table_C.ContainerId

WHERE Table_A.UnitTypeID='PAD' AND Table_B.UnitType.ID='FROG' 
  AND Table_C.PartTypeID='FLIES'

Saya harap ini membantu sedikit itu tidak rumit seperti yang terlihat pada awalnya. Akan lebih baik jika contohnya dengan dua tabel tetapi memang seperti itu. GL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nilai string salah:'\xEF\xBF\xBD' untuk kolom

  2. Penyisipan MySQL simultan dalam tabel yang sama:bagaimana caranya?

  3. Tambahkan gabungan dalam ke pernyataan mySQL GROUP_CONCAT

  4. Cara termudah untuk Menambahkan Beberapa Spasi ke String di MySQL – SPACE()

  5. Bagaimana menerapkan Pencarian Kata Kunci di MySQL?