在学习数据库的时候经常会遇到on和where今天就讲讲on和where的区别。
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。
在使用 left join 时,on 和 where 条件的区别如下:
1、on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。
2、where 条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有 left join 的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
假设有两张表:
表1:tab1
id size1 102 203 30
表2:tab2
size name10 AAA20 BBB20 CCC
两条SQL:
1、select * from tab1 left join tab2 on tab1.size = tab2.size where tab2.name='AAA'2、 select * from tab1 left join tab2 on tab1.size = tab2.size and tab2.name='AAA'
第一条SQL的过程:
1、中间表
on 条件:
tab1.size = tab2.size tab1.id tab1.size tab2.size tab2.name1 10 10 AAA2 20 20 BBB2 20 20 CCC3 30 (null) (null)
2、再对中间表过滤
where 条件:
tab2.name='AAA' tab1.id tab1.size tab2.size tab2.name1 10 10 AAA
第二条SQL的过程:
1、中间表
on 条件:
tab1.size = tab2.size and tab2.name='AAA'(条件不为真也会返回左表中的记录)
tab1.id tab1.size tab2.size tab2.name1 10 10 AAA2 20 (null) (null)3 30 (null) (null)
其实以上结果的关键原因就是 left join,right join,full join 的特殊性。
不管 on 上的条件是否为真都会返回 left 或 right 表中的记录,full 则具有 left 和 right 的特性的并集。
而 inner jion 没这个特殊性,则条件放在 on 中和 where 中,返回的结果集是相同的。
本篇讲解了where和on的区别,更多相关知识请关注php中文网。
相关推进按:
Atas ialah kandungan terperinci SQL 中 on 条件与 where 条件的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Tomakephpapplicationsfaster, ikutiTheseSteps: 1) UseopcodecachinglikeopcachetostorePrecompiledscriptbytecode.2) minimizedatabasequeriesbyusingquerycachingandeficientindexing.3)

ToimprovePhpapPlicationspeed, ikutiTheSesteps: 1) EnableopCodeCachingWithApcutoreduceScriptExecutionTime.2) pelaksanaanDatabasequerycachingingPdotominimizedataBaseHits.3)

Suntikan ketergantungan (DI) dengan ketara meningkatkan kesesuaian kod PHP oleh kebergantungan transitif secara eksplisit. 1) Kelas Decoupling dan pelaksanaan khusus menjadikan ujian dan penyelenggaraan lebih fleksibel. 2) Di antara tiga jenis, pembina menyuntik kebergantungan ekspresi eksplisit untuk memastikan keadaan konsisten. 3) Gunakan bekas DI untuk menguruskan kebergantungan kompleks untuk meningkatkan kualiti kod dan kecekapan pembangunan.

DatabaseQueryoptimizationInpinvolvesseverSlegatiesToenhancePratePratePratePratePratePregiesToRperformance.1) selectOnlynessaryColumnStoReducedatatatransfer.2) UseIndexingTospeedupdatareTrieval.3) PrevancequerycachingToStoreresultSoffReFfeFfffffffffffffffffffffffffffffffffffffffffffferseprewfffffffffffersepresseprespersepresperseprespersepresperseprespersepresperseprespers

Phpisusedforsendingemailsduetoitsbuilt-inmail () functionAndSupportivelibrariesLikePhpmailerandswiftmailer.1) usethemail () functionforbasiceMails, butithaslimitations.2) scorkphpmailerforadvancedfeatures

Kesesakan prestasi PHP boleh diselesaikan melalui langkah -langkah berikut: 1) Gunakan XDEBUG atau Blackfire untuk analisis prestasi untuk mengetahui masalah; 2) Mengoptimumkan pertanyaan pangkalan data dan menggunakan cache, seperti APCU; 3) Gunakan fungsi yang cekap seperti array_filter untuk mengoptimumkan operasi array; 4) Konfigurasi Opcache untuk cache bytecode; 5) mengoptimumkan bahagian depan, seperti mengurangkan permintaan HTTP dan mengoptimumkan gambar; 6) Memantau dan mengoptimumkan prestasi secara berterusan. Melalui kaedah ini, prestasi aplikasi PHP dapat ditingkatkan dengan ketara.

DependencyInjection (DI) inphpisadesignPatternThatManagesandReducesclassdependencies, enhancingcodemodularity, testility, andmaintainability.itallowspassingdependenciesLikedatabaseconnectionstoclassesesparameters, fasilitasieAseAsiShanandscalability.

CachingimprovesphpperformanceSbebyStoringResultsofcomputationsorqueriesforquickretrieval, reducingserverloadandenhancingResponsetimes.effectiveStRegiesClude: 1) Opcodecaching, yang


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.
