mysql的连表查询_MySQL_连表查询
連表查詢
連表查詢通常分為內(nèi)連接和外連接。內(nèi)連接就是使用INNER JOIN進(jìn)行連表查詢;而外連接又分為三種連接方式,分別是左連接(LEFT JOIN)、右連接(RIGHT JOIN)、全連接(FULL JOIN)。下來(lái)我們一起來(lái)看一下這幾種連接方式的區(qū)別及基礎(chǔ)用法。
內(nèi)連接
INNER JOIN
INNER JOIN將只會(huì)返回相匹配的元素項(xiàng),即不會(huì)返回結(jié)果為NULL的數(shù)據(jù)項(xiàng)。如下圖所示:
INNER JOIN查詢的兩張表(A、B)的共有的部分,查詢結(jié)果為null的記錄不會(huì)出現(xiàn)。
外連接
關(guān)鍵字OUTER是可選擇的,取決于具體語(yǔ)言,在實(shí)現(xiàn)上它們都是遵循標(biāo)準(zhǔn)的
LEFT JOIN
關(guān)鍵字從左表(A)返回所有的行,即使右表(B)中沒有匹配。如果右表中沒有匹配,則結(jié)果為NULL。
簡(jiǎn)單來(lái)說(shuō)就是不管右表(B)有沒有匹配到,都會(huì)完全輸出左表(A)的所有記錄,只是當(dāng)右表的內(nèi)容沒有匹配到時(shí),則將右表對(duì)應(yīng)的字段的內(nèi)容設(shè)置為NULL。
當(dāng)然,對(duì)查詢的SQL語(yǔ)句稍加改動(dòng)就可以實(shí)現(xiàn)只查詢A表中存在的記錄。比如說(shuō)添加一個(gè)右表的key為NULL的篩選條件。
RIGHT JOIN
關(guān)鍵字從右表(B)返回所有的行,即使左表(A)中沒有匹配。如果左表(A)中沒有匹配,則結(jié)果為 NULL。
如左連接類似,不管左表(A)有沒有匹配到結(jié)果,都完全顯示右表(B)的所有記錄,將左表(A)沒有匹配到的字段值設(shè)為NULL。
當(dāng)然,也可以進(jìn)行簡(jiǎn)單的篩選得到只有右表(B)存在的記錄,設(shè)置左表中的key是NULL。
FULL JOIN
關(guān)鍵字只要左表(A)和右表(B)其中一個(gè)表中存在匹配,則返回行。FULL OUTER JOIN 關(guān)鍵字結(jié)合了 LEFT JOIN 和 RIGHT JOIN 的結(jié)果。
簡(jiǎn)單來(lái)說(shuō)就是只要兩張表(A、B)中任意一張表中存在匹配,則返回記錄,當(dāng)然也可以簡(jiǎn)單的篩選得到兩表中單獨(dú)存在的記錄。比例a.key is null or b.key is null。
總結(jié)
以上是生活随笔為你收集整理的mysql的连表查询_MySQL_连表查询的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python三种数据类型详解_最全面的P
- 下一篇: FreeEIM 2.0 beta 发布