SELECT t.taskid AS id,
t.projectid AS project,
te.effort AS effort,
(((t.taskname::text || ' | '::text) || m.milestonename::text) || ' | '::text) || p.projectname::text AS name,
t.status,
1 AS version
FROM task t
LEFT JOIN timeentry te ON t.taskid = te.taskid
LEFT JOIN project p ON t.projectid = p.projectid
LEFT JOIN milestonetask tm ON t.taskid = tm.taskid
FULL JOIN milestone m ON tm.milestoneid = m.milestoneid
WHERE m.milestoneid IS NOT NULL
UNION
SELECT distinct(t.taskid) AS id,
t.projectid AS project,
te.effort AS effort,
(t.taskname::text || ' | (--no milestone--) | '::text) || p.projectname::text AS name,
t.status,
1 AS version
FROM task t
LEFT JOIN timeentry te ON t.taskid = te.taskid
LEFT JOIN project p ON t.projectid = p.projectid
LEFT JOIN milestonetask tm ON t.taskid = tm.taskid
FULL JOIN milestone m ON tm.milestoneid = m.milestoneid
WHERE NOT (tm.taskid IN ( SELECT DISTINCT milestonetask.taskid
FROM milestonetask
WHERE milestonetask.milestoneid IS NOT NULL));
id | project | effort | name | status | version
----+---------+--------+------------------+--------+---------
89 | 1 | 5 | Coding for clock | Active | 1
89 | 1 | 2 | Coding for clock | Active | 1
89 | 1 | 4 | Coding for clock | Active | 1
请告诉我,如果我足够清楚,将非常感谢您的帮助和提前感谢。