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
Lepaskan: 2024-12-19 19:49:11
asal
376 orang telah melayarinya

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';
Salin selepas log masuk

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!

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