mysql - error -1054 order 子句中的未知列 e.id

标签 mysql sql union

我有这样的查询-

SELECT e.id FROM event e WHERE e.startdatetime<NOW() AND e.isEventDeleted=FALSE AND e.isNeighborlyInvited=TRUE AND e.organized_by!=49 AND  e.event_address IN (SELECT id FROM address a WHERE latitude!='' AND longitude!='' AND IFNULL(( 3959 * ACOS( COS( RADIANS(22.6979425) ) * COS( RADIANS( latitude ) ) * COS( RADIANS( longitude ) - RADIANS(75.8597305) ) + SIN( RADIANS(22.6979425) ) * SIN( RADIANS( latitude ) ))),0)<100) AND e.id NOT IN (SELECT eventid FROM event_interest WHERE approvalStatus!='InterestExpressed' AND interested_user=49) AND e.id NOT IN (SELECT eventid FROM event_invite WHERE invited_user=49 )      
UNION
SELECT e.id FROM event e WHERE  e.isEventDeleted=FALSE AND e.isNeighborlyInvited=TRUE AND e.organized_by!=49 AND  EXISTS (SELECT id FROM address a WHERE latitude!='' AND longitude!='' AND e.event_address=id AND IFNULL(( 3959 * ACOS( COS( RADIANS(22.6979425) ) * COS( RADIANS( latitude ) ) * COS( RADIANS( longitude ) - RADIANS(75.8597305) ) + SIN( RADIANS(22.6979425) ) * SIN( RADIANS( latitude ) ))),0)<100) AND NOT EXISTS (SELECT eventid FROM event_interest WHERE e.id =eventid AND approvalStatus!='InterestExpressed' AND interested_user=49) AND NOT EXISTS (SELECT eventid FROM event_invite WHERE eventid=e.id AND invited_user=49 )  
ORDER BY e.id,((SELECT AVG(avgr.abc) AS VALUE FROM ( SELECT YEAR(NOW())-YEAR(dob) AS abc FROM user_detail WHERE userid=(SELECT interested_user FROM event_interest  WHERE eventid=477 AND approvalStatus='Approve') UNION SELECT YEAR(NOW())-YEAR(dob) AS abc FROM user_detail WHERE userid=(SELECT invited_user FROM event_invite WHERE eventid=477  AND acceptance='Accept')) AS avgr)+(SELECT IFNULL(( 3959 * ACOS( COS( RADIANS(22.6979425) ) * COS( RADIANS( latitude ) ) * COS( RADIANS( longitude ) - RADIANS(75.8597305) ) + SIN( RADIANS(22.6979425) ) * SIN( RADIANS( latitude ) ))),0) FROM address a WHERE latitude!='' AND longitude!='' AND e.event_address=id));

这个给我错误 1054 unknown column e.id in order 子句。

我在谷歌上检查了每一个命名错误,但我不明白它是如何命名错误的,如果我做错了什么请告诉我。

最佳答案

尝试从 ORDER BY 子句中删除 e,因为您使用的是 UNION 语句:

ORDER BY id

代替

按 e.id 排序

关于mysql - error -1054 order 子句中的未知列 e.id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22654920/

相关文章:

php - Cakephp 中的 UNION 语法

php - 如何将一个数据库表的多个变量的值提交到一个输入字段?

sql - 收到 "DataReader.GetFieldType returned null."错误。

mysql - 使用 case 语句更新多个变量

mysql - 如何按值获取分组列数

sql - MySQL:FULL OUTER JOIN - 如何合并一列?

php - UNION SELECT MySQL 查询,用 PHP 做数学运算和显示

javascript - 在php中单击图像时如何获取表格列的id?

mysql - 三个表的左连接

mysql - 在 MySQL 中使用派生表的查询中的这个 X 是什么意思?