我正在尝试合并几个查询:
SELECT 'object1', MessageNo, _Order FROM _Object1Changes WHERE MessageNo=0 AND Node='33' order by _Order desc LIMIT 1
UNION ALL SELECT 'object2', MessageNo, _Order FROM _Object2Changes WHERE MessageNo=0 AND Node='33' order by _Order desc LIMIT 1
UNION ALL SELECT 'object3', MessageNo, _Order FROM _Object3Changes WHERE MessageNo=0 AND Node='33' order by _Order desc LIMIT 1
UNION ALL SELECT 'object4', MessageNo, _Order FROM _Object4Changes WHERE MessageNo=0 AND Node='33' order by _Order desc LIMIT 1;
错误代码:1221。UNION 和 ORDER BY 的使用不正确
或者我尝试这样:
SELECT 'object1', MessageNo, MIN(_Order) FROM _Object1Changes WHERE MessageNo=0 AND Node='33' LIMIT 1
UNION ALL SELECT 'object2', MessageNo, MIN(_Order) FROM _Object2Changes WHERE MessageNo=0 AND Node='33' LIMIT 1
UNION ALL SELECT 'object3', MessageNo, MIN(_Order) FROM _Object3Changes WHERE MessageNo=0 AND Node='33'LIMIT 1
UNION ALL SELECT 'object4', MessageNo, MIN(_Order) FROM _Object4Changes WHERE MessageNo=0 AND Node='33' LIMIT 1;
我得到一张有一条记录的表,'object1',null,null。目标是从多个表中获取结果,其中从每个表中获取最小值为 _Order 和 Node='33' 的记录
如何解决这个问题?
从UNION Syntax文档章节:
将各个子查询括在括号中: