【发布时间】:2016-02-27 18:13:49
【问题描述】:
我一直在尝试从聊天表中检索 ser 发送的一些消息。我想出了一个在 phpmyadmin 中运行良好的查询。
但是当我在 laravel 中使用相同的查询时,它不起作用。
SELECT user2,message,created_at FROM ( SELECT user2,message,created_at FROM chats WHERE user1 ='Tiffany' UNION SELECT user1,message,created_at FROM chats WHERE user2 ='Tiffany' in ( SELECT DISTINCT user2 FROM chats WHERE user1 ='Tiffany' UNION SELECT distinct user1 FROM chats WHERE user2 ='Tiffany' ) )tb2 WHERE user2 !='Tiffany' GROUP BY user2
我几乎尝试了所有方法,但找到了解决方案。请给我一个小解释,为什么上面的查询不起作用。我的聊天表的字段是
id,user1(varchar),user2(varchar),message,created_at(timestamp),updated_at(timestamp)
我使用的整个代码
if ($pmessage = \DB::select('select user2,message,created_at
from (select user2,message,created_at from chats where user1 ='Tiffany'
union select user1,message,created_at from chats where user2 ='Tiffany'
in ( select distinct user2 from chats where user1 ='Tiffany'
union select distinct user1 from chats where user2 ='Tiffany' ))
where user2 != 'Tiffany'
group by user2')) {
return response()->json(['pmessage' => $pmessage, 'status' => 200], 200);
} else {
return response()->json(['status' => 505], 505);
}
【问题讨论】:
-
您使用的是 DB:: 还是 Eloquent?请发布您的代码。
-
@AlexeyMezenin 我正在使用 DB:: 检查编辑后的版本
标签: mysql laravel-5.2