我正在使用一个名为 Task 的表和一个 sql 联合查询来检索一些任务。所有信息都可以在这里找到:
http://sqlfiddle.com/#!2/786e1/2
我的问题是这样的:
当我在 order by 子句中使用任何列(优先级、start_date、completion_date...)时,它工作得很好,但是每当我将created_on放在上面时,它都会出现以下错误:
Unknown column 'created_on' in 'order clause'
此外,在尝试 t
.created_on
时,我一直遇到相同的错误:
Unknown column 't.created_on' in 'order clause'
在我提供的 fiddle 中,您可以看到任务表的结构和我尝试运行的查询。我想知道为什么联合体不与created_on列一起工作以及如何使其工作。
提前致谢。
最佳答案
您需要将 SELECT 语句放入子查询中。 你必须尝试这样的事情, 在 sqlfiddle 中没有用户表,所以我更改了您的原始查询。 请参阅下面的示例,尝试对原始查询使用相同的方法。 抱歉我不会说英语,希望对你有帮助
SELECT * FROM
(
SELECT t.id,
t.title,
t.owner,
t.created_on,
t.due_date,
t.completion_date,
t.start_date,
t.predecessor_id,
t.priority,
t.status,
t.performer_id,
t.delegate_id,
t.performer_type,
t.is_assigned,
t.review_required,
t.attachments
FROM task t
WHERE t.performer_id IS NULL
AND t.is_returned = 0
AND t.status = 'active'
union ALL
SELECT t.id,
t.title,
t.owner,
t.created_on,
t.due_date,
t.completion_date,
t.start_date,
t.predecessor_id,
t.priority,
t.status,
t.performer_id,
t.delegate_id,
t.performer_type,
t.is_assigned,
t.review_required,
t.attachments
FROM task t
WHERE t.performer_id IS NULL
AND t.is_returned = 0
AND t.status = 'active'
) as x
order by title
关于mysql - 联合语句仅给出引用一列的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25273448/