Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mendapatkan Data dengan Cekap daripada Berbilang Jadual Menggunakan SQL Joins dan Unions?

Bagaimanakah Saya Boleh Mendapatkan Data dengan Cekap daripada Berbilang Jadual Menggunakan SQL Joins dan Unions?

Barbara Streisand
Lepaskan: 2025-01-24 01:37:12
asal
931 orang telah melayarinya

How Can I Efficiently Retrieve Data from Multiple Tables Using SQL Joins and Unions?

Pertanyaan SQL untuk mengembalikan data daripada berbilang jadual

Sertai dan Kesatuan

  • Sertai Dalaman: Menggabungkan baris daripada dua jadual berdasarkan lajur biasa, hanya mengembalikan baris yang sepadan. (Lihat Wikipedia untuk maklumat lanjut)
  • Kesatuan: Menggabungkan hasil berbilang pertanyaan, tetapi mengalih keluar baris pendua.
  • Kiri Luar Sertai: Termasuk semua baris dari jadual kiri dan baris yang sepadan dari jadual kanan, tetapi meninggalkan baris yang tidak sepadan dari kanan jadual.
  • Cantum Luar Kanan: Termasuk semua baris dari jadual kanan dan baris yang sepadan dari jadual kiri, tetapi meninggalkan baris yang tidak sepadan dari jadual kiri.
  • Bersilang: Hanya mengembalikan baris yang sama merentas berbilang jadual. (Tidak disokong oleh semua pangkalan data)

Contoh

Inner Join: Dapatkan data daripada jadual "kereta" dan "model" :

SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID
Salin selepas log masuk

Kesatuan: Gabungkan hasil dua pertanyaan untuk mendapatkan semua kereta sport dan 4WD:

SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID
WHERE
    m.ID = 1
UNION
SELECT
    c.ID,
    m.model
FROM
    cars c
INNER JOIN
    models m
ON
    c.model = m.ID
WHERE
    m.ID = 3
Salin selepas log masuk

Left Outer Join: Cari semua jenama dan kiraan kereta mereka, termasuk jenama tanpa sebarang kereta:

SELECT
    b.brand,
    COUNT(c.id) AS countOfBrand
FROM
    brands b
LEFT OUTER JOIN
    cars c
ON
    b.ID = c.brand
GROUP BY
    b.brand
Salin selepas log masuk

Bersilang: Dapatkan hanya baris yang sama merentas jadual "warna" dan "model":

SELECT
    m.model,
    c.color
FROM
    models m
INNER JOIN
    colors c
ON
    m.ID = c.ID
WHERE
    m.model = 'Sports' AND c.color = 'Red'
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Data dengan Cekap daripada Berbilang Jadual Menggunakan SQL Joins dan Unions?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan