首页 > 试题广场 >

找到每个人的任务

[编程题]找到每个人的任务
  • 热度指数:103950 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
有一个person表,主键是id,如下:
id name
1
2
fh
tm
有一个任务(task)表如下,主键也是id,如下:
id person_id content
1
2
2
2
tm1 works well
tm2 works well
请你找到每个人的任务情况,并且输出出来,没有任务的也要输出,而且输出结果按照person的id升序排序,输出情况如下:

id name content
1
2
2
fh
tm
tm
NULL
tm1 works well
tm2 works well

示例1

输入

drop table if exists person;
drop table if exists task;
CREATE TABLE `person` (
`id` int(4) NOT NULL,
`name` varchar(32) NOT NULL,
PRIMARY KEY (`id`));

CREATE TABLE `task` (
`id` int(4) NOT NULL,
`person_id` int(4) NOT NULL,
`content` varchar(32) NOT NULL,
PRIMARY KEY (`id`));

INSERT INTO person VALUES
(1,'fh'),
(2,'tm');

INSERT INTO task VALUES
(1,2,'tm works well'),
(2,2,'tm works well');

输出

id|name|content
1|fh|None
2|tm|tm works well
2|tm|tm works well
头像 牛客题解官
发表于 2025-03-18 13:50:11
精华题解 这道题目要求我们找到每个人的任务,我们要做的事情如下: 1. 确定总体问题 我们需要从person表和task表中提取数据,找出每个人的任务情况,并且输出结果需要按照person的ID升序排序。即使某个人没有任务,也需要在结果中显示。 2. 分析关键问题 连接表:使用LEFT JOIN将perso 展开全文
头像 SunburstRun
发表于 2020-08-13 17:55:53
这个题目挺简单的,首先肯定先写出,要输出的东西: select person.id,person.name,task.content 但是有个坑注意就是,没有任务的也要输出,所以连接task表的时候要使用左连接: from person left jo 展开全文
头像 Ding_123
发表于 2021-12-06 15:41:47
知识点 本题使用左连接不是所有人都有任务,没有任务的显示为null 连接条件为person表中的id和task表里的person_id,排序不用写也没事因为表原本就是按照id升序排序的 代码 select p.id, p.name, t.content from person as p left 展开全文
头像 此用户名涉嫌违规
发表于 2021-03-10 18:09:25
题目描述:找到每个人的任务情况,并且输出出来,没有任务的也要输出,而且输出结果按照person的id升序排序。没什么好说的,左右连接搞定。注意person.id对应task.person_id。 select p.id,p.name,t.content from person p left join 展开全文
头像 高质量搬砖人
发表于 2021-02-01 09:47:39
方法)表连结 没有任务的也要输出SELECT p.id, p.name, t.content FROM person AS p LEFT JOIN task AS t ON p.id = t.person_id;
头像 清潭洞战战兢兢
发表于 2021-08-09 21:43:13
SELECT person.id,person.name,task.content FROM person LEFT JOIN task ON person.id=task.person_id通过person表的id和task的person_id连接两个表
头像 不做造粪机器
发表于 2024-07-26 17:49:05
select p.id, p.name, t.content from person p left join task t on p.id=t.person_id order by p.id 考察连接,要求包括所有人,所以连接要以person表作为连接依据
头像 jiang_dr
发表于 2021-11-01 11:03:55
思路:左连接,再根据id排序 注意:这里person的id对应task中的person_id 完整代码: SELECT p.id, p.name, t.content FROM person AS p LEFT JOIN task AS t ON p.id = t.person_id ORDER 展开全文
头像 牛客954016549号
发表于 2023-03-28 12:39:48
select person.id, person.name ,task.content from person left join task on person.id=task.person_id order by person.id 认真读题,区分各个表头的含义
头像 于逸痕
发表于 2022-12-05 23:42:25
这里personID比较饶,任务表的id是任务表的id,它专门有一个person——id的select p.id,p.name,t.contentfrom person p left join task ton p.id 展开全文
头像 想拿SSS开局的掘金者
发表于 2024-08-29 11:22:16
select p.id, p.name, content from person p left join task t on p.id = t.person_id order by p.id 此题,重点的是 理解,表的连接, 难点是:1、 根据,反馈例表中的要求,知道具体使用 jion(连接 展开全文

问题信息

SQL
难度:
150条回答 3117浏览

热门推荐

通过挑战的用户

查看代码
找到每个人的任务