Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menapis Keputusan Sertaan Dalam MySQL Dengan Cekap Merentas Berbilang Jadual?

Bagaimana untuk Menapis Keputusan Sertaan Dalam MySQL Dengan Cekap Merentas Berbilang Jadual?

Linda Hamilton
Linda Hamiltonasal
2024-12-20 02:25:09349semak imbas

How to Efficiently Filter MySQL Inner Join Results Across Multiple Tables?

MySQL Inner Join Query Berbilang Jadual dengan Penapisan Tambahan

Anda sedang cuba untuk menyertai berbilang jadual dalam MySQL menggunakan inner join. Khususnya, anda cuba mendapatkan maklumat tentang produk, harga dan penyenaraian untuk pengguna tertentu. Walau bagaimanapun, termasuk jadual penyenaraian dalam pertanyaan anda menghasilkan data tambahan yang tidak diingini dalam output.

Mari kita menganalisis pertanyaan anda dan mengubah suainya untuk menangani isu:

SELECT *
FROM orders
  INNER JOIN products_pricing
    ON orders.pricing_id = products_pricing.id
  INNER JOIN products
    ON products_pricing.product_id = products.id
WHERE orders.user_id = '7'

Pertanyaan ini mendapatkan semula semua rekod untuk user_id '7' daripada jadual pesanan, termasuk harga yang berkaitan dan maklumat produk.

Untuk memasukkan penyenaraian jadual dan hadkan keputusan kepada penyenaraian tertentu, anda perlu menambah syarat tambahan:

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  -- Add condition to filter by specific listing
  AND l.url = 'test.com'  -- Add condition to filter by specific url

Pertanyaan yang diubah suai ini menambah dua syarat pada klausa WHERE:

  • l.id = 233 menapis keputusan untuk memasukkan hanya penyenaraian dengan id '233'.
  • l.url = 'test.com' menapis keputusan selanjutnya untuk memasukkan hanya penyenaraian dengan URL khusus 'test.com'.

Pertanyaan yang dikemas kini ini seharusnya memberikan anda output yang diingini: jadual yang mengandungi maklumat tentang produk, harga dan penyenaraian untuk pengguna dengan user_id '7', ditapis mengikut syarat penyenaraian khusus.

Atas ialah kandungan terperinci Bagaimana untuk Menapis Keputusan Sertaan Dalam MySQL Dengan Cekap Merentas Berbilang Jadual?. 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