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...