我有这个条款:
"Select *
From
(
Select sedi_i18n.*,
0 orden
From table sedi_i18n
Where culture= 'italiano'
Union
Select sedi_i18n.*, 1 orden
From table sedi_i18n
Where culture<> 'italiano'
)
Order By orden, culture";
但是我收到了这个错误:
SQLSTATE [42000]:语法错误或 访问冲突:1064你有一个 SQL语法错误;检查 与您的MySQL对应的手册 用于正确语法的服务器版本 在'table sedi_i18n附近使用 culture ='italiano'Union Select sedi_i18n。*,1或'在第6行
有什么想法吗?
此致
哈维
答案 0 :(得分:2)
您的括号后需要一个子查询别名,并删除单词表 - 如下所示:
Select *
From
(
Select sedi_i18n.*,
0 orden
From sedi_i18n
Where culture= 'italiano'
Union
Select sedi_i18n.*, 1 orden
From sedi_i18n
Where culture<> 'italiano'
) SQ
Order By orden, culture;
答案 1 :(得分:0)
0 orden
需要
0 , orden
与
相同的问题1 orden
1, orden
还修复@Stiivi评论
答案 2 :(得分:0)
From table sedi_i18n
应该是:
From sedi_i18n
(没有'table'字样)
第6行和第10行相同。
答案 3 :(得分:0)
你的陈述中是否需要“表格”这个词?我建议将联盟拿出来并在没有它的情况下运行它,看看你得到了什么。分解它,看看你的真实错误在哪里。
答案 4 :(得分:0)
在查询中删除“table”一词。也是内部查询的别名。
"Select *
From
(
Select sedi_i18n.*,
0 orden
From sedi_i18n
Where culture= 'italiano'
Union
Select sedi_i18n.*, 1 orden
From sedi_i18n
Where culture<> 'italiano'
) a
Order By orden, culture";