LEFT JOIN 可以用来建立左外部连接,查询的 SQL 叙述句 LEFT JOIN 左侧资料表 (table_name1) 的所有记录都会加入到查询结果中,即使右侧资料表 (table_name2) 中的连接栏位没有符合的值也一样。
相对於 LEFT JOIN,RIGHT JOIN 可以用来建立右外部连接,查询的 SQL 叙述句 RIGHT JOIN 右侧资料表 (table_name2) 的所有记录都会加入到查询结果中,即使左侧资料表 (table_name1) 中的连接栏位没有符合的值也一样。
SELECT table_column1, table_column2...
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name;
SELECT table_column1, table_column2···
FROM table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name;
有些资料库的语法会是 LEFT OUTER JOIN ,RIGHT OUTER JOIN。。
客户资料表(guest)
顾客编号(Primary Key) | 顾客姓名 | 住址 | 电话 |
---|---|---|---|
01 | 李大华 | 桃园 | 09111211 |
02 | 陈大名 | 高雄 | 09232323 |
03 | 陈阿美 | 新北 | 09226541 |
04 | 林大帅 | 桃园 | 09232489 |
订单资料表(ORDER)
订单编号(Primary Key) | 顾客编号 | 商品名称 | 价格 | 日期 |
---|---|---|---|---|
01 | 01 | 汉堡 | 70 | 2021-01-03 |
02 | 02 | 薯条 | 50 | 2021-05-15 |
03 | 04 | 可乐 | 40 | 2021-11-01 |
04 | 04 | 拉面 | 230 | 2021-12-12 |
05 | 04 | 鸡块 | 50 | 2021-12-12 |
06 | 06 | 馒头 | 20 | 2021-12-31 |
现在我们想查询所有客户与其订单状况的资料,我们可以作一个 LEFT JOIN 查询:
SELECT guest.顾客姓名, ORDER.订单编号
FROM guest
LEFT JOIN ORDER
ON guest.顾客编号=ORDER.顾客编号;
查询结果如下:
顾客姓名 | 订单编号 |
---|---|
李大华 | 01 |
陈大名 | 02 |
陈阿美 | null |
林大帅 | 03 |
林大帅 | 04 |
林大帅 | 05 |
LEFT JOIN 会返回左侧资料表中所有资料列,就算没有符合连接条件,而右侧资料表中如果没有匹配的资料值就会显示为 NULL。
现在我们想查询所有订单与相应的客户之资料,我们可以作一个 RIGHT JOIN 查询:
SELECT guest.顾客姓名, ORDER.订单编号
FROM guest
RIGHT JOIN ORDER
ON guest.顾客编号=ORDER.顾客编号;
查询结果如下:
顾客姓名 | 订单编号 |
---|---|
李大华 | 01 |
陈大名 | 02 |
林大帅 | 03 |
林大帅 | 04 |
林大帅 | 05 |
null | 06 |
RIGHT JOIN 会返回右侧资料表中所有资料列,就算是没有符合连接条件,而左侧资料表中如果没有匹配的资料值就会显示为 NULL。
下篇见
此系列文章会同步发文到个人部落格,有兴趣的读者可以前往观看喔。 在 E2E 测试中,不仅有选取元素...
前言 今天开始是新的章节,因此也有新的资料集 Kickstarter Projects 在开始之前要...
0. 进度条 模型 进度 VGG Net 完成 ResNet 完成 DensNet 完成 Mobil...
1.开启自己手机的解析度面板 安卓计算: 495ppi-->对应的dpi范围为480以上--&...
前面有说到UserAuthentication()跟UserAuthorization(),这两个的...