【发布时间】:2021-09-20 21:03:21
【问题描述】:
我有两张表 Customers、Sales,如下所示:
客户:
| id | first_name | last_name | gender | age | customer_since |
|---|---|---|---|---|---|
| 1 | Daniel | Black | M | 34 | 2014-10-13 |
| 2 | Erik | Brown | M | 25 | 2015-06-10 |
| 3 | Diana | Trump | F | 39 | 2015-10-25 |
| 4 | Anna | Yao | F | 19 | 2017-02-20 |
| 5 | Christian | Sanders | M | 42 | 2018-01-31 |
销售:
| id | date | book_id | customer_id | quantity | amount |
|---|---|---|---|---|---|
| 1 | 2019-09-02 | 2 | 3 | 1 | 14.99 |
| 2 | 2019-10-01 | 1 | 2 | 1 | 12.99 |
| 3 | 2019-10-01 | 3 | 4 | 1 | 15.75 |
我需要在销售表中获取所有客户及其数据,即使他们在销售表中没有记录,所以我确实像下面这样离开了:
SELECT c.id as customer_id, c.first_name, c.last_name, c.gender, c.age, c.customer_since,
s.sdate AS sales_date, s.id as sale_id
FROM customers c
LEFT JOIN sales s
ON c.id = s.customer_id
我得到了这个结果:
| CUSTOMER_ID | FIRST_NAME | LAST_NAME | GENDER | AGE | CUSTOMER_SINCE | SALES_DATE | SALE_ID |
|---|---|---|---|---|---|---|---|
| 3 | Diana | Trump | F | 39 | 25-OCT-15 | 02-SEP-19 | 1 |
| 2 | Erik | Brown | M | 25 | 10-JUN-15 | 01-OCT-19 | 2 |
| 1 | Daniel | Black | M | 34 | 13-OCT-14 | - | - |
| 4 | Anna | Yao | F | 19 | 20-FEB-17 | - | - |
| 5 | Christian | Sanders | M | 42 | 31-JAN-18 | - | - |
这是预期我的问题是,如果我需要获取仅在源表中的所有客户和来自目标表中的具有特定条件的客户,我会运行以下查询
SELECT c.id as customer_id, c.first_name, c.last_name, c.gender, c.age, c.customer_since,
s.sdate AS sales_date, s.id as sale_id
FROM customers c
LEFT JOIN sales s
ON c.id = s.customer_id
where s.id=1
我只有一个这样的记录
| CUSTOMER_ID | FIRST_NAME | LAST_NAME | GENDER | AGE | CUSTOMER_SINCE | SALES_DATE | SALE_ID |
|---|---|---|---|---|---|---|---|
| 3 | Diana | Trump | F | 39 | 25-OCT-15 | 02-SEP-19 | 1 |
但我需要这个结果
| CUSTOMER_ID | FIRST_NAME | LAST_NAME | GENDER | AGE | CUSTOMER_SINCE | SALES_DATE | SALE_ID |
|---|---|---|---|---|---|---|---|
| 3 | Diana | Trump | F | 39 | 25-OCT-15 | 02-SEP-19 | 1 |
| 1 | Daniel | Black | M | 34 | 13-OCT-14 | - | - |
| 4 | Anna | Yao | F | 19 | 20-FEB-17 | - | - |
| 5 | Christian | Sanders | M | 42 | 31-JAN-18 | - | - |
我该怎么办?
【问题讨论】: