Rumah > Artikel > pangkalan data > Bagaimana untuk menyelesaikan masalah pertindihan dalam mysql menggunakan sambungan sambungan kiri
Apabila menggunakan pertanyaan join, contohnya, jadual A ialah yang utama jadual , sambungan kiri ke jadual B. Apa yang kami jangkakan ialah hasil pertanyaan akan mempunyai rekod sebanyak yang terdapat dalam jadual A. Walau bagaimanapun, mungkin terdapat keputusan bahawa jumlah rekod yang ditanya adalah lebih daripada jumlah rekod. dalam jadual A. , dan apabila hasil pertanyaan dipaparkan, beberapa lajur diulang secara ringkas, produk Cartesan dijana.
Jadual A ialah jadual pengguna (pengguna), dan medannya ialah:
ID pengguna nama ID
1 aaaa 10001
2 bbbb 10002
3 ccccc 10003
Jadual B ialah jenis jadual produk (produk) pertama dan medannya ialah:
Pada masa ini, apabila kami menggunakan sql berikut untuk melaksanakan, kami mendapati bahawa hasil pelaksanaanID pengguna masa tajuk ID
1 Tajuk 1 2014-01-01 10002
2 Tajuk 2 2014-01-01 10002
3 Tajuk 3 2014-01-01 10001
4 Tajuk 4 🎜>4 Tajuk 4 0-2018 >5 Tajuk 5 2018-03-20 10003
selecct * from user left join product on user.userid=product.userid;sebenarnya lebih tinggi daripada jumlah rekod dalam jadual pengguna BanyakMasalah SelesaiMalah, masalah ini boleh dilihat oleh orang yang arif sepintas lalu, kerana kata kunci sertaan kiri tidak unik dalam jadual produk, jadi bahagian data bukan unik ini menghasilkan produk Cartesian , menghasilkan lebih banyak hasil pelaksanaan daripada yang dijangkakan. Penyelesaian adalah dengan menggunakan kekunci unik untuk mengaitkan dan melakukan pertanyaan pautanApabila mysql menggunakan left join, data jadual kanan mempunyai data penduaLEFT JOIN keyword akan Mengembalikan semua baris dari jadual kiri (nama_jadual1), walaupun tiada baris yang sepadan dalam jadual kanan (nama_jadual2). Pada masa ini, tiada masalah jika jadual yang betul (table_name2) tidak mempunyai data atau hanya satu keping data selepas ditapis oleh kata kunci on. Apa yang saya ingin katakan ialah apa yang perlu dilakukan sekiranya terdapat data pendua (penduaan lengkap dalam perniagaan) dalam jadual yang betul (nama_jadual2). Apabila data pendua muncul dalam jadual kanan (nama_jadual2) selepas ditapis oleh kata kunci on, data yang ditemui pada masa ini ialah: data jadual kanan * data pendua + data bersyarat lain dalam jadual kanan, dan apa yang kita perlukan Bilangan item data adalah berbeza. Penyelesaian saya ialah dengan terlebih dahulu menanyakan jadual yang betul (nama_jadual2) mengikut kumpulan medan penapis, menapis data yang sama, dan kemudian menganggap hasilnya sebagai jadual yang sesuai untuk perkaitan
前面脑补 LEFT JOIN (SELECT MODEL_CODE,MODEL_NAME from tm_model GROUP BY MODEL_CODE) tm on tav.model_code = tm.MODEL_CODE 后面脑补
Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah pertindihan dalam mysql menggunakan sambungan sambungan kiri. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!