MySQL LEFT JOIN多个表没有正确连接

时间:2018-06-04 17:53:19

标签: mysql left-join

我正在尝试使用多个链接的LEFT JOIN来填充SELECT查询中的字段,但是我无法获得正确的逻辑。我有以下表格:

CREATE TABLE `tasks` (
  `id` int(11) NOT NULL,
  `ticket_id` int(11) NOT NULL,
  `group_id` bigint(20) DEFAULT NULL,
  `title` varchar(150) DEFAULT NULL,
  `due_date` datetime DEFAULT NULL,
  PRIMARY KEY (`id`))

CREATE TABLE `role_group` (
  `role_id` int(10) NOT NULL,
  `group_id` varchar(45) NOT NULL)

CREATE TABLE `role` (
  `id` int(11) NOT NULL,
  `name` varchar(45) NOT NULL,
  PRIMARY KEY (`id`))

我想返回所有记录的角色名称,这些记录的组ID与role_group中的记录匹配,但NULL

我目前的查询如下:

SELECT 
  t.id,
  t.group_id,
  t.title,
  t.due_date,
  r.name
FROM 
  tasks t
LEFT JOIN 
  role_group rg ON t.group_id = rg.group_id
LEFT JOIN 
  role r ON r.id = rg.role_id;

目前,无论是否有匹配的记录,查询都会在NULL中返回role.name

编辑:这是一个小学生错误 - role_group中的记录与tasks中的记录没有匹配。对不起浪费贡献者'这一次的时间。不确定我是否应删除,或?

0 个答案:

没有答案