2017-05-08 53 views
1

首先,我不是在所有的SQL精通,所以这是一个艰巨的任务,但这里是我到目前为止:MySQL的加入一个表,然后再加入新的表与自身

SQL Fiddle

正如你所看到的,我有一个项目管理软件项目,我试图从它建立一个报告。似乎主要是我得到我需要的数据,除了我无法获得父任务名称。

任务表包括ID,名称等,以及专门用于父任务ID的列。所以它需要被连接到它自己,以便我可以获得该父任务的名称。但在同一次运行中,我从timelogs表开始,尝试加入其他一些表以获取其他信息。

在我的生产数据库中,例如,我也有一个公司表,所有项目都有一个id,所以我需要在某些时候将它们连接在一起。

所以这里的问题:

为什么在sqlfiddle在那里,不父任务名称字段中未填写的taskid 6?我如何获得这些信息?

+0

SQL小提琴似乎有问题(或该网站是)。你能发布你正在使用的模式和SQL语句吗? –

+0

@SloanThrasher链接被破坏:我修复了它 – FrankerZ

+0

@FrankerZ不管我是不是还在为我工作,你的或我的小提琴都不会出现。 SQLFiddle似乎有问题。 (即使about.html页面也没有显示出来) – DauntlessRob

回答

2

左连接需要加入您为任务设置的参考pt。您的加入应如下所示:

LEFT JOIN tasks pt ON tasks.parentTaskId = pt.taskId 

查看更新的提琴here