Mysql Union语句仅引用一列时出错
我使用一个名为Task的表和一个sqlunion查询来检索一些任务。可在此处找到所有信息: 我的问题是: 当我在order by子句中使用任何列(优先级、开始日期、完成日期…)时,它工作得非常好,但每当我将created_放在上面时,就会出现以下错误: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' 在我提
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中的所有杂波,工作就没问题了。