91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql 連接查詢(俗稱連表查詢)內連接、外連接、自然連接

發布時間:2020-08-03 02:29:09 來源:網絡 閱讀:3014 作者:梧桐深院 欄目:MySQL數據庫

連接查詢的分類

本文討論中用到的測試數據
``create table student(
id int primary key auto_increment,
name varchar(10)
);
insert into student values
(null,'xiaohong'),
(null,'xiaoming'),
(null,'xiaogang'),
(null,'xiaoliang');

create table score(
id int primary key auto_increment,
stu_id int not null,
score decimal(5,2)
);
insert into score values
(null,1,300.45),
(null,2,400.35),
(null,3,500);``

mysql 連接查詢(俗稱連表查詢)內連接、外連接、自然連接

內連接

inner join / join

由于mysql默認是內連接,所以,join 等同于 inner join
以兩個表舉例,內連接只返回在連接過程中有連接匹配的記錄。也就是說,根據連接條件,兩個表中都有對應的數據存在的記錄,才會返回。
舉例:
select stu.id,stu.name,s.score from student as stu inner join score as s on stu.id = s.stu_id;
mysql 連接查詢(俗稱連表查詢)內連接、外連接、自然連接
如上圖所示,由于小亮沒有成績,所以小剛沒有出現在最終的結果中。

連接條件分析:

連接條件可以使用 on using where
區別:on 在連表查詢中,任何情況下都可以使用on,而且建議使用 on。on 是在連表的過程中,根據on條件判斷是否保留連表的結果。
using 是在連表查詢的字段名一致時,可以使用。如 using(id)。using 條件中使用的字段,返回結果中只有一遍。
where 是在連表操作完成后,再根據where條件進行數據過濾。不建議使用,因為這樣效率很低。

外連接

外連接查詢時,允許另一方存在與之不匹配的數據。外連接的連接條件不可使用 where,須使用 on 或者 using其中的一種,其它都與內連接一致。

左外連接(left outer join / left join):

左表為主表,即使右表沒有與左表匹配的記錄,也返回左表的記錄。而右表與左表不匹配的記錄將被忽略。
舉例:
select * from student as stu left join score as s on stu.id = s.stu_id;
結果如下:
+----+-----------+------+--------+--------+
| id | name | id | stu_id | score |
+----+-----------+------+--------+--------+
| 1 | xiaohong | 1 | 1 | 300.45 |
| 2 | xiaoming | 2 | 2 | 400.35 |
| 3 | xiaogang | 3 | 3 | 500.00 |
| 4 | xiaoliang | NULL | NULL | NULL |
+----+-----------+------+--------+--------+

右外連接(right outer join / right join):

右表為主表,即使左表沒有與之匹配的記錄,也返回右表的記錄。
舉例:
select * from score as s right join student as stu on s.stu_id=stu.id;
+------+--------+--------+----+-----------+
| id | stu_id | score | id | name |
+------+--------+--------+----+-----------+
| 1 | 1 | 300.45 | 1 | xiaohong |
| 2 | 2 | 400.35 | 2 | xiaoming |
| 3 | 3 | 500.00 | 3 | xiaogang |
| NULL | NULL | NULL | 4 | xiaoliang |
+------+--------+--------+----+-----------+

全外連接(full join):mysql 暫不支持,可以用union模擬實現。

自然連接

natural join (同 join)

natural left join (同 left join)

natural right join (同 right join)

自然連接會自動判斷,以兩個表中相同的字段為連接條件,返回查詢結果。

注意:內連接不寫連接條件會出現笛卡爾積的結果,應該避免這種情況,而外連接不寫連接條件會報錯

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江孜县| 朝阳市| 同德县| 察雅县| 正蓝旗| 顺平县| 武安市| 肥西县| 汾阳市| 安国市| 九龙城区| 屯门区| 平武县| 宁晋县| 井研县| 新巴尔虎左旗| 政和县| 永仁县| 泊头市| 金湖县| 台前县| 澄江县| 高尔夫| 阿巴嘎旗| 舞阳县| 桐梓县| 大冶市| 夏河县| 临泉县| 长子县| 罗城| 朔州市| 顺平县| 綦江县| 湛江市| 阜南县| 耿马| 安龙县| 即墨市| 大化| 瑞昌市|