mysql中外連接內(nèi)連接以及l(fā)eft?
mysql連接分成:內(nèi)連接、左外連接left join和右外連接right join!由于連接的記錄,可能是一方不存在的!(兩條記錄中,可能某條不存在)
內(nèi)連接:只有兩個表相匹配的行才能在結(jié)果集中出現(xiàn)。
也就是說,當(dāng)某個表中多出一條記錄的時候,這條記錄與另一個表不能相互匹配的時候,不匹配的記錄就不會出現(xiàn)在結(jié)果中!
外連接:左外連接、右外連接注意好左外與右外的區(qū)別:區(qū)別在于,那個表的記錄(指的是連接失敗的記錄),會最終出現(xiàn)在連接結(jié)果內(nèi)?什么是左表和右表?
join關(guān)鍵字前面的(左邊的)左表,join關(guān)鍵字后邊的(右邊的)右表!
左外:如果出現(xiàn)左表記錄連接不上右表記錄的,左表記錄會出現(xiàn)正在最終的連接結(jié)果內(nèi)!而右表記錄相應(yīng)設(shè)置成NULL。
右外:如果出現(xiàn)右表記錄連接不上左表記錄的,右表記錄會出現(xiàn)正在最終的連接結(jié)果內(nèi)!而左表記錄相應(yīng)設(shè)置成NULL。 總結(jié):內(nèi)連接,外連接差別不大,只是外連接會將沒有連接成功的記錄,也出現(xiàn)最終的連接的結(jié)果內(nèi),而內(nèi)連接,連接的結(jié)果只有連接成功的(兩條記錄都存在的)因此,可以交換表的位置,達(dá)到使用left與right join 混用的的目的!問題:統(tǒng)計每個班級內(nèi),學(xué)生的數(shù)量!,在班級列表內(nèi):班級名,教室,學(xué)生數(shù)量注意,外連接應(yīng)該有條件!