Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Cekap Menyertai Empat Jadual dalam MySQL untuk Mengelakkan Rekod Pendua?

Bagaimana untuk Cekap Menyertai Empat Jadual dalam MySQL untuk Mengelakkan Rekod Pendua?

Patricia Arquette
Patricia Arquetteasal
2024-12-19 19:49:11344semak imbas

How to Efficiently Join Four Tables in MySQL to Avoid Duplicate Records?

Menyertai Berbilang Jadual dalam MySQL dengan INNER JOIN

Apabila bekerja dengan pangkalan data hubungan seperti MySQL, menyertai jadual membolehkan anda mendapatkan semula data daripada berbilang jadual berdasarkan lajur biasa. Tutorial ini membimbing anda melalui proses menyertai tiga jadual: pesanan, harga_produk dan produk.

Pernyataan Masalah

Untuk mendapatkan semula produk yang berkaitan dengan pengguna tertentu dan sertakan hiperpautan kepada setiap produk, jadual keempat, penyenaraian, perlu disertakan. Walau bagaimanapun, pertanyaan semasa mengembalikan rekod pendua daripada jadual penyenaraian.

Penyelesaian

Untuk menyelesaikan isu ini, ubah suai pertanyaan seperti berikut:

SELECT 
  p.id,
  p.name,
  l.url,
  o.user_id,
  o.pricing_id
FROM orders AS o
INNER JOIN products_pricing AS pp ON o.pricing_id  = pp.id
INNER JOIN products         AS  p ON pp.product_id = p.id
INNER JOIN listings         AS  l ON l.user_id = o.user_id
WHERE o.user_id ='7' 
  AND l.id = 233 
  AND l.url = 'test.com';

Penjelasan:

  • l.id = 233 dan l.url = 'test.com' ialah syarat tambahan yang mengehadkan keputusan kepada penyenaraian khusus dengan ID 233 dan URL test.com.
  • Klausa INNER JOIN memastikan bahawa hanya rekod yang sepadan daripada keempat-empat jadual dikembalikan.

Output

Untuk data sampel yang disediakan, pertanyaan yang dikemas kini pulangan:

| ID | NAMA | URL | USER_ID | PRICING_ID |

| 33 | produk ujian | ujian.com | 7 | 37 |

Output ini termasuk ID produk, nama, URL penyenaraian, ID pengguna dan ID harga untuk pengguna tertentu dengan ID pengguna 7.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Menyertai Empat Jadual dalam MySQL untuk Mengelakkan Rekod Pendua?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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