日韩欧乱色一区二区三区在线_久久―日本道色综合久久_欧美日本一区二区_网曝91综合精品门事件在线

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > left join 涉及多個關聯條件時寫在on后面與where后面有什么區別?

left join 涉及多個關聯條件時寫在on后面與where后面有什么區別?

來源:千鋒教育
發布人:xqq
時間: 2023-10-13 07:16:13 1697152573

一、left join 涉及多個關聯條件時寫在on后面與where后面的區別

在 SQL 中,LEFT JOIN 連接操作是用來連接兩個或多個表的。當涉及到多個關聯條件時,這些條件可以寫在 ON 后面,也可以寫在 WHERE 后面。但是它們的作用是不同的。

如果多個關聯條件寫在 ON 后面,這些條件將被視為 LEFT JOIN 操作的一部分,并且將會影響到連接后的結果集。如果多個關聯條件寫在 WHERE 后面,這些條件將被視為對連接后的結果進行過濾。

實例:

表1(product):

表2(product_details):

查詢1:

SELECT * FROM product LEFT JOIN product_details
ON (product.id = product_details.id)
AND product.amount=200;

結果:

把on的所有條件作為匹配條件,不符合的右表都為null。

查詢2:

SELECT * FROM product LEFT JOIN product_details
ON (product.id = product_details.id)
WHERE product.amount=200;

結果:

匹配完再篩選,結果只有一條記錄。

二、SQL語言JOIN詳解

SQL JOIN 子句用于把來自兩個或多個表的行結合起來,基于這些表之間的共同字段。

不同的 SQL JOIN 類型:

INNER JOIN:如果表中有至少一個匹配,則返回行LEFT JOIN:即使右表中沒有匹配,也從左表返回所有的行RIGHT JOIN:即使左表中沒有匹配,也從右表返回所有的行FULL JOIN:只要其中一個表中存在匹配,則返回行

下圖展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相關的 7 種用法:

1、SQL INNER JOIN

語法:

SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

或者:

SELECT column_name(s)
FROM table1
JOIN table2
ON table1.column_name=table2.column_name;

參數說明:

columns:要顯示的列名。table1:表1的名稱。table2:表2的名稱。column_name:表中用于連接的列名。

注釋:INNER JOIN 與 JOIN 是相同的。

2、SQL LEFT JOIN

語法:

SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

或者:

SELECT column_name(s)
FROM table1
LEFT OUTER JOIN table2
ON table1.column_name=table2.column_name;

注釋:在某些數據庫中,LEFT JOIN 稱為 LEFT OUTER JOIN。

3、SQL RIGHT JOIN

語法:

SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

或者:

SELECT column_name(s)
FROM table1
RIGHT OUTER JOIN table2
ON table1.column_name=table2.column_name;

注釋:在某些數據庫中,RIGHT JOIN 稱為 RIGHT OUTER JOIN。

4、SQL?FULL JOIN

語法:

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2
ON table1.column_name=table2.column_name;

延伸閱讀1:SQL是什么

SQL 指結構化查詢語言,全稱是 Structured Query Language。SQL 讓您可以訪問和處理數據庫,包括數據插入、查詢、更新和刪除。SQL 在1986年成為 ANSI(American National Standards Institute 美國國家標準化組織)的一項標準,在 1987 年成為國際標準化組織(ISO)標準。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 高唐县| 光山县| 鸡西市| 宁都县| 陵川县| 潜山县| 承德市| 连平县| 临漳县| 江安县| 隆子县| 荣成市| 明光市| 巢湖市| 壶关县| 宁陕县| 巴林右旗| 米林县| 天气| 交口县| 嵊泗县| 通许县| 临沭县| 隆化县| 北辰区| 伊宁县| 左云县| 格尔木市| 朝阳市| 澎湖县| 阳朔县| 凤凰县| 六安市| 酒泉市| 贵溪市| 鹤峰县| 得荣县| 高雄市| 尼玛县| 山西省| 太谷县|