MySQL中級(jí)聯(lián)查詢是通過使用多個(gè)表的連接來檢索數(shù)據(jù)的,這樣可以將兩個(gè)或多個(gè)表中的數(shù)據(jù)連接起來。
首先,我們需要?jiǎng)?chuàng)建兩個(gè)表,例如一個(gè)存儲(chǔ)學(xué)生數(shù)據(jù)的表和一個(gè)存儲(chǔ)成績數(shù)據(jù)的表。為了將這兩個(gè)表級(jí)聯(lián)起來,我們需要確保它們具有共同的數(shù)據(jù)字段。
假設(shè)學(xué)生表的表名為“students”,它包含以下字段:id、name和age。成績表的表名為“scores”,它包含以下字段:student_id、course和score。
基本級(jí)聯(lián)查詢
SELECT students.name, scores.course, scores.score FROM students JOIN scores ON students.id = scores.student_id;
在上面的查詢中,我們使用JOIN關(guān)鍵字將學(xué)生表和成績表連接起來。ON子句用于指定連接條件,即學(xué)生表的id字段等于成績表的student_id字段。通過這種方式,我們可以獲得學(xué)生的姓名、選修的課程以及對(duì)應(yīng)的分?jǐn)?shù)。
左連接查詢
SELECT students.name, scores.course, scores.score FROM students LEFT JOIN scores ON students.id = scores.student_id;
左連接查詢是指以左邊的表(students)作為主表,以右邊的表(scores)作為依賴表。如果左邊的表中的數(shù)據(jù)在右邊的表中沒有匹配項(xiàng),那么結(jié)果集中會(huì)輸出空值。
內(nèi)連接查詢
SELECT students.name, scores.course, scores.score FROM students INNER JOIN scores ON students.id = scores.student_id;
內(nèi)連接查詢也是通過JOIN關(guān)鍵字實(shí)現(xiàn)。它只返回兩個(gè)表之間的交集。也就是說,只有學(xué)生表和成績表都存在對(duì)應(yīng)的匹配項(xiàng),才會(huì)將其檢索出來。