轉(zhuǎn)自:初行
SQL連接分為內(nèi)連接、外連接、交叉連接。
book表:
stu表: 
**
** 1.1.等值連接:在連接條件中使用等于號(hào)(=)運(yùn)算符比較被連接列的列值,其查詢結(jié)果中列出被連接表中的所有列,包括其中的重復(fù)列。
1.2.不等值連接:在連接條件使用除等于運(yùn)算符以外的其它比較運(yùn)算符比較被連接的列的列值。這些運(yùn)算符包括>、>=、<=、<、!>、!<和<>。
1.3.自然連接:在連接條件中使用等于(=)運(yùn)算符比較被連接列的列值,但它使用選擇列表指出查詢結(jié)果集合中所包括的列,并刪除連接表中的重復(fù)列。
內(nèi)連接:內(nèi)連接查詢操作列出與連接條件匹配的數(shù)據(jù)行,它使用比較運(yùn)算符比較被連接列的列值。
SELECT * FROM book AS a,stu AS b WHERE a.sutid = b.stuidSELECT * FROM book AS a INNER JOIN stu AS b ON a.sutid = b.stuid內(nèi)連接可以使用上面兩種方式,其中第二種方式的inner可以省略。
其連接結(jié)果如上圖,是按照a.stuid = b.stuid進(jìn)行連接。
2.1.左連接:是以左表為基準(zhǔn),將a.stuid = b.stuid的數(shù)據(jù)進(jìn)行連接,然后將左表沒(méi)有的對(duì)應(yīng)項(xiàng)顯示,右表的列為NULL
SELECT * FROM book AS a LEFT JOIN stu AS b ON a.stuid = b.stuid
2.2.右連接:是以右表為基準(zhǔn),將a.stuid = b.stuid的數(shù)據(jù)進(jìn)行連接,然以將右表沒(méi)有的對(duì)應(yīng)項(xiàng)顯示,左表的列為NULL
SELECT * FROM book AS a RIGHT JOIN stu AS b ON a.stuid = b.stuid
2.3.全連接:完整外部連接返回左表和右表中的所有行。當(dāng)某行在另一個(gè)表中沒(méi)有匹配行時(shí),則另一個(gè)表的選擇列表列包含空值。如果表之間有匹配行,則整個(gè)結(jié)果集行包含基表的數(shù)據(jù)值。
SELECT * FROM book AS a FULL OUTER JOIN stu AS b ON a.stuid = b.stuid
交叉連接:交叉連接返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉聯(lián)接也稱作笛卡爾積。
SELECT * FROM book AS a CROSS JOIN stu AS b ORDER BY a.id
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注