在我同时使用order by 和union 时报错Incorrect usage of UNION and ORDER BY
展示错误sql
SELECT ilcd.rfidStatus,ilcd.rfidSN as rfieSn from i_locker_communication ilc
LEFT JOIN i_locker_communication_detail ilcd on ilcd.commId = ilc.commId
WHERE ilcd.rfidSN = '1'
ORDER BY ilc.createTime DESC LIMIT 1
UNION
SELECT ilcd.rfidStatus,ilcd.rfidSN as rfieSn from i_locker_communication ilc
LEFT JOIN i_locker_communication_detail ilcd on ilcd.commId = ilc.commId
WHERE ilcd.rfidSN = '2'
ORDER BY ilc.createTime DESC LIMIT 1
此时在运行sql的时候报错Incorrect usage of UNION and ORDER BY
后来查了一番资料 在同时使用union和order by 是需要对每个子句用括号括起来
正确sql
(SELECT ilcd.rfidStatus,ilcd.rfidSN as rfieSn from i_locker_communication ilc
LEFT JOIN i_locker_communication_detail ilcd on ilcd.commId = ilc.commId
WHERE ilcd.rfidSN = '1'
ORDER BY ilc.createTime DESC LIMIT 1)
UNION
(SELECT ilcd.rfidStatus,ilcd.rfidSN as rfieSn from i_locker_communication ilc
LEFT JOIN i_locker_communication_detail ilcd on ilcd.commId = ilc.commId
WHERE ilcd.rfidSN = '2'
ORDER BY ilc.createTime DESC LIMIT 1)
这样才能使用union 查询出来一个临时表 在对其进行其他查询操作