leetcode mysql 從不訂購的客戶

2021-10-05 08:30:13 字數 2065 閱讀 8503

1、題目:  

某**包含兩個表,customers 表和 orders 表。編寫乙個 sql 查詢,找出所有從不訂購任何東西的客戶。

customers 表:

+----+-------+

| id | name  |

+----+-------+

| 1  | joe   |

| 2  | henry |

| 3  | sam   |

| 4  | max   |

+----+-------+

orders 表:

+----+------------+

| id | customerid |

+----+------------+

| 1  | 3          |

| 2  | 1          |

+----+------------+

例如給定上述**,你的查詢應返回:

+-----------+

| customers |

+-----------+

| henry     |

| max       |

+-----------+

2、解題步驟:

(1) 建立表:             

create table `customers`  (

`id` int(11) not null auto_increment comment 'id',

`name` varchar(50) character set utf8 collate utf8_general_ci default null comment '客戶姓名',

primary key (`id`) using btree

) engine = innodb character set = utf8 collate = utf8_general_ci comment = '客戶表' row_format = dynamic;

create table `orders`  (

`id` int(11) not null auto_increment comment 'id',

`customerid` int(11) default null comment '客戶id',

primary key (`id`) using btree

) engine = innodb character set = utf8 collate = utf8_general_ci comment = '訂單表' row_format = dynamic;

(2) 插入資料:

insert into `customers` values (1, 'joe');

insert into `customers` values (2, 'henry');

insert into `customers` values (3, 'sam');

insert into `customers` values (4, 'max');

insert into `orders` values (1, 3);

insert into `orders` values (2, 1);

(3) 查詢sql:   

a、方案一:資料量小的時候建議使用。      

select *

from customers

where id not in (

select customerid

from orders

);

b、方案二:資料量大的時候建議使用。

select a.*

from customers a

left join orders b on a.id = b.customerid

where b.customerid is null;

(4) 執行結果:

LeetCode MySQL日期比較函式

leetcode題目 表 weather column name type id int recorddate date temperature int id 是這個表的主鍵 該錶包含特定日期的溫度資訊 編寫乙個 sql 查詢,來查詢與之前 昨天的 日期相比溫度更高的所有日期的 id 返回結果 不要...

leetcode mysql 刪除重複的電子郵箱

1 題目 編寫乙個 sql 查詢,來刪除 person 表中所有重複的電子郵箱,重複的郵箱裡只保留 id 最小 的那個。id email 1 john example.com 2 bob example.com 3 john example.com id 是這個表的主鍵。例如,在執行你的查詢語句之後...

627 交換工資 Leetcode Mysql

給定乙個 salary 表,如下所示,有 m 男性 和 f 女性 的值。交換所有的 f 和 m 值 例如,將所有 f 值更改為 m,反之亦然 要求只使用乙個更新 update 語句,並且沒有中間的臨時表。注意,您必只能寫乙個 update 語句,請不要編寫任何 select 語句。例如 id nam...