首页 > 解决方案 > 如何修复 mysql 错误号 #1250 来自其中一个 SELECT 的表 'a1' 不能在字段列表中使用?

问题描述

我正在按照日期和时间对数据进行排序

select b.app_user_id,b.username,a.message_content,a.message_to,a.message_date 
from app_messages a 
left join app_users b 
on a.message_from = b.app_user_id
where a.message_to=1 and b.app_user_id= 4
UNION 
select b1.app_user_id,b1.username,a1.message_content,a1.message_to,a1.message_date 
from app_messages a1 
left join app_users b1 
on a1.message_from = b1.app_user_id 
where a1.message_to=4 and b.app_user_id= 1 
order by a1.message_date,a.message_date

这里我的表结构 我得到 mysql 错误号 #1250 来自其中一个 SELECT 的表 'a1' 不能在字段列表中使用表 app_messages 表 app_users

作为我的情况,如何正确使用联合子句对数据进行排序?

标签: mysqlunion

解决方案


您可以在下面尝试 - 您需要在外部查询中使用 order by 子句

select * from
(
select b.app_user_id,b.username,a.message_content,a.message_to,a.message_date 
from app_messages a 
left join app_users b 
on a.message_from = b.app_user_id
where a.message_to=1 and b.app_user_id= 4
UNION 
select b1.app_user_id,b1.username,a1.message_content,a1.message_to,a1.message_date 
from app_messages a1 
left join app_users b1 
on a1.message_from = b1.app_user_id 
where a1.message_to=4 and b1.app_user_id= 1 
)A order by message_date

推荐阅读