国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql內連接和外連接有哪些區別

2024-07-24 12:33:46
字體:
來源:轉載
供稿:網友
  mysql內連接和外連接的區別:內連接會取出連接表中匹配到的數據,匹配不到的不保留;而外連接會取出連接表中匹配到的數據,匹配不到的也會保留,其值為NULL。
 
  本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
 
  區別
  內連接(inner join):取出連接表中匹配到的數據,匹配不到的不保留
  外連接(outer join):取出連接表中匹配到的數據,匹配不到的也會保留,其值為NULL
  示例表
 
  users表
 
  mysql> select * from users;
  +----+-------+
  | id | name  |
  +----+-------+
  |  1 | john  |
  |  2 | May   |
  |  3 | Lucy  |
  |  4 | Jack  |
  |  5 | James |
  +----+-------+
  5 rows in set (0.00 sec)
  topics表
 
  mysql> select * from topics;
  +----+---------------------------------------+---------+
  | id | title                                 | user_id |
  +----+---------------------------------------+---------+
  |  1 |  Hello world                          |       1 |
  |  2 | PHP is the best language in the world |       2 |
  |  3 | Laravel artist                        |       6 |
  +----+---------------------------------------+---------+
  3 rows in set (0.00 sec)
  內連接(inner join)
  示例
  mysql> select * from users as u inner join topics as t on u.id=t.user_id;
  +----+------+----+---------------------------------------+---------+
  | id | name | id | title                                 | user_id |
  +----+------+----+---------------------------------------+---------+
  |  1 | john |  1 |  Hello world                          |       1 |
  |  2 | May  |  2 | PHP is the best language in the world |       2 |
  +----+------+----+---------------------------------------+---------+
  2 rows in set (0.00 sec)
  inner可以省略,as是給表起別名,也可以省略
 
  mysql> select * from users u join topics t on u.id=t.user_id;
  +----+------+----+---------------------------------------+---------+
  | id | name | id | title                                 | user_id |
  +----+------+----+---------------------------------------+---------+
  |  1 | john |  1 |  Hello world                          |       1 |
  |  2 | May  |  2 | PHP is the best language in the world |       2 |
  +----+------+----+---------------------------------------+---------+
  2 rows in set (0.00 sec)
  以上兩句等價于
 
  mysql> select * from users,topics where users.id=topics.user_id;
  +----+------+----+---------------------------------------+---------+
  | id | name | id | title                                 | user_id |
  +----+------+----+---------------------------------------+---------+
  |  1 | john |  1 |  Hello world                          |       1 |
  |  2 | May  |  2 | PHP is the best language in the world |       2 |
  +----+------+----+---------------------------------------+---------+
  2 rows in set (0.00 sec)
  外連接(outer join)
  左外連接(left outer join):以左邊的表為主表
  右外連接(right outer join):以右邊的表為主表
  以某一個表為主表,進行關聯查詢,不管能不能關聯的上,主表的數據都會保留,關聯不上的以NULL顯示
 
  通俗解釋就是:先拿出主表的所有數據,然后到關聯的那張表去找有沒有符合關聯條件的數據,如果有,正常顯示,如果沒有,顯示為NULL
 
  示例
 
  mysql> select * from users as u left join topics as t on u.id=t.user_id;
  +----+-------+------+---------------------------------------+---------+
  | id | name  | id   | title                                 | user_id |
  +----+-------+------+---------------------------------------+---------+
  |  1 | john  |    1 |  Hello world                          |       1 |
  |  2 | May   |    2 | PHP is the best language in the world |       2 |
  |  3 | Lucy  | NULL | NULL                                  |    NULL |
  |  4 | Jack  | NULL | NULL                                  |    NULL |
  |  5 | James | NULL | NULL                                  |    NULL |
  +----+-------+------+---------------------------------------+---------+
  5 rows in set (0.00 sec)
  等價于以下,只是字段的位置不一樣
 
  mysql> select * from topics as t right join users as u on u.id=t.user_id;
  +------+---------------------------------------+---------+----+-------+
  | id   | title                                 | user_id | id | name  |
  +------+---------------------------------------+---------+----+-------+
  |    1 |  Hello world                          |       1 |  1 | john  |
  |    2 | PHP is the best language in the world |       2 |  2 | May   |
  | NULL | NULL                                  |    NULL |  3 | Lucy  |
  | NULL | NULL                                  |    NULL |  4 | Jack  |
  | NULL | NULL                                  |    NULL |  5 | James |
  +------+---------------------------------------+---------+----+-------+
  5 rows in set (0.00 sec)
  左外連接和右外連接是相對的,主要就是以哪個表為主表去進行關聯
 
  到此,關于“mysql內連接和外連接有哪些區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 凤凰县| 霞浦县| 惠州市| 兴国县| 安达市| 博客| 高青县| 洪洞县| 阳信县| 马龙县| 凤阳县| 池州市| 德清县| 岢岚县| 中宁县| 扶绥县| 金坛市| 仁寿县| 青田县| 襄樊市| 天台县| 德州市| 西乌| 乳源| 永昌县| 黄浦区| 鄱阳县| 福建省| 泊头市| 恭城| 巴塘县| 息烽县| 柯坪县| 垦利县| 车致| 信宜市| 柞水县| 资溪县| 阳春市| 阳春市| 黑龙江省|