使用訂單ID 連接兩表后,左表訂單表為主表時(shí),a01 項(xiàng)1 行,a02 項(xiàng)1 行,a03 項(xiàng)2 行,共4 行連接結(jié)果。
為了解決這個(gè)問題,我們首先需要理解左連接(LEFT JOIN)的工作原理。左連接會(huì)返回左表中的所有記錄,即使右表中沒有匹配的記錄。對(duì)于沒有匹配的記錄,右表的字段會(huì)顯示為NULL。
首先,我們來看訂單表(表2-5)和訂單詳情表(表2-6)的內(nèi)容:
表2-5(訂單表):
| 訂單ID | 用戶ID | 訂單日期 |
|--------|--------|----------|
| 1 | 1001 | 2023-01-01|
| 2 | 1002 | 2023-01-02|
| 3 | 1003 | 2023-01-03|
| 4 | 1004 | 2023-01-04|
表2-6(訂單詳情表):
| 詳情ID | 訂單ID | 商品ID | 數(shù)量 |
|--------|--------|--------|------|
| 1 | 1 | A | 2 |
| 2 | 1 | B | 1 |
| 3 | 2 | A | 3 |
| 4 | 3 | C | 1 |
| 5 | 5 | D | 1 |
我們進(jìn)行左連接查詢:
```sql
SELECT *
FROM 表2-5 AS 訂單表
LEFT JOIN 表2-6 AS 訂單詳情表
ON 訂單表.訂單ID = 訂單詳情表.訂單ID;
```
根據(jù)左連接的定義,結(jié)果將包含所有來自訂單表的記錄,以及匹配的訂單詳情表的記錄。
連接后的結(jié)果如下:
| 訂單ID | 用戶ID | 訂單日期 | 詳情ID | 商品ID | 數(shù)量 |
|--------|--------|----------|--------|--------|------|
| 1 | 1001 | 2023-01-01| 1 | A | 2 |
| 1 | 1001 | 2023-01-01| 2 | B | 1 |
| 2 | 1002 | 2023-01-02| 3 | A | 3 |
| 3 | 1003 | 2023-01-03| 4 | C | 1 |
| 4 | 1004 | 2023-01-04| NULL | NULL | NULL |
在這個(gè)結(jié)果集中,總行數(shù)為5行。因此,正確答案是A: 5。