leetcode mysql 組合兩個表

2021-10-05 01:53:53 字數 2162 閱讀 3458

1、題目:

表1: person

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

| 列名         | 型別     |

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

| personid    | int     |

| firstname   | varchar |

| lastname    | varchar |

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

personid 是上表主鍵

表2: address

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

| 列名         | 型別    |

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

| addressid   | int     |

| personid    | int     |

| city        | varchar |

| state       | varchar |

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

addressid 是上表主鍵

firstname, lastname, city, state

2、解題步驟:

(1) 建立表:

create table `person`  (

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

`firstname` varchar(50) character set utf8 collate utf8_general_ci not null comment '名',

`lastname` varchar(50) character set utf8 collate utf8_general_ci not null comment '姓',

primary key (`personid`) using btree

) engine = innodb character set = utf8 collate = utf8_general_ci row_format = dynamic;

create table `address`  (

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

`personid` int(11) not null comment 'person表主鍵id',

`city` varchar(50) character set utf8 collate utf8_general_ci not null comment '城市',

`state` varchar(50) character set utf8 collate utf8_general_ci not null comment '國家',

primary key (`addressid`) using btree

) engine = innodb character set = utf8 collate = utf8_general_ci row_format = dynamic;

(2) 插入資料:

insert into `person` values (1, 'xuejin', 'cao');

insert into `person` values (2, '麻花', '重慶');

(3) 查詢sql

a、方案一:

select p.firstname, p.lastname, a.city, a.state

from person p

left join address a on a.personid = p.personid;

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

select p.firstname, p.lastname, a.city, a.state

from person p

left join (

select personid, city, state

from address

) aon a.personid = p.personid;

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 是這個表的主鍵。例如,在執行你的查詢語句之後...

leetcode mysql 從不訂購的客戶

1 題目 某 包含兩個表,customers 表和 orders 表。編寫乙個 sql 查詢,找出所有從不訂購任何東西的客戶。customers 表 id name 1 joe 2 henry 3 sam 4 max orders 表 id customerid 1 3 2 1 例如給定上述 你的查...