Mysql Union语句仅引用一列时出错

Mysql Union语句仅引用一列时出错,mysql,sql,union,Mysql,Sql,Union,我使用一个名为Task的表和一个sqlunion查询来检索一些任务。可在此处找到所有信息: 我的问题是: 当我在order by子句中使用任何列(优先级、开始日期、完成日期…)时,它工作得非常好,但每当我将created_放在上面时,就会出现以下错误: Unknown column 'created_on' in 'order clause' 另外,当尝试在上创建时,我一直有相同的错误: Unknown column 't.created_on' in 'order clause' 在我提

我使用一个名为Task的表和一个sqlunion查询来检索一些任务。可在此处找到所有信息:

我的问题是:

当我在order by子句中使用任何列(优先级、开始日期、完成日期…)时,它工作得非常好,但每当我将created_放在上面时,就会出现以下错误:

Unknown column 'created_on' in 'order clause'
另外,当尝试在上创建时,我一直有相同的错误:

Unknown column 't.created_on' in 'order clause'
在我提供的提琴中,您可以看到任务表的结构和我试图运行的查询。我想知道工会为什么不在专栏上与created_合作,以及如何让它工作


提前感谢。

您需要将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

我不知道为什么,但将句子从列改为t.*使它起作用


感谢所有帮助过我的人,如果我遇到同样的问题

我会考虑这些问题。你的SQL小提琴缺少了几个表的定义,请纠正你的SQL FIDLE。如果我删除你最初没有定义的SQL中的所有杂波,工作就没问题了。