Rumah > pangkalan data > tutorial mysql > Mengapakah Berbilang LEFT JOIN Menghasilkan Kiraan Lawatan yang Salah?

Mengapakah Berbilang LEFT JOIN Menghasilkan Kiraan Lawatan yang Salah?

Barbara Streisand
Lepaskan: 2025-01-23 12:19:10
asal
667 orang telah melayarinya

Why are Multiple LEFT JOINs Producing Incorrect Visit Counts?

Memahami Kiraan Lawatan Tidak Tepat daripada Berbilang JOIN KIRI

Pertanyaan yang diberikan menjana kiraan lawatan yang salah kerana sifat urutan berbilang operasi LEFT JOIN membawa kepada hasil darab, bukannya aditif.

Pada mulanya, menyertai jadual grocery dengan betul mengira lawatan runcit setiap pengguna. Walau bagaimanapun, LEFT JOIN berikutnya dengan fishmarket mencipta berbilang baris untuk setiap pengguna, dengan berkesan mendarabkan kiraan lawatan kedai runcit dengan bilangan lawatan pasar ikan untuk setiap pengguna. Ini menerangkan kiraan "12" yang salah untuk pengguna yang melawat kedua-dua kedai.

Penyelesaian: Subkueri untuk Pengagregatan Tepat

Masalah diselesaikan menggunakan subkueri untuk mengagregat secara bebas kiraan lawatan untuk setiap kedai:

<code class="language-sql">SELECT u.id,
       u.account_balance,
       (SELECT COUNT(*) FROM grocery WHERE user_id = u.id) AS "# of grocery visits",
       (SELECT COUNT(*) FROM fishmarket WHERE user_id = u.id) AS "# of fishmarket visits"
FROM users u
ORDER BY u.id;</code>
Salin selepas log masuk

Pertanyaan yang disemak ini mengira dan memaparkan lawatan runcit dan pasar ikan dengan tepat untuk setiap pengguna, memberikan data agregat yang betul.

Atas ialah kandungan terperinci Mengapakah Berbilang LEFT JOIN Menghasilkan Kiraan Lawatan yang Salah?. 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