Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取对话和消息。与最后一条未读消息的对话应位于顶部_Php_Mysql_Database_Laravel_Codeigniter - Fatal编程技术网

Php 获取对话和消息。与最后一条未读消息的对话应位于顶部

Php 获取对话和消息。与最后一条未读消息的对话应位于顶部,php,mysql,database,laravel,codeigniter,Php,Mysql,Database,Laravel,Codeigniter,我有三张桌子: 对话、消息和用户 表的解释在这里。 对话表: id user1 user2 消息表: id conversation_id fromUser toUser is_read 用户表: id name etc 现在,我想获得特定用户id的对话,比如210。并且,与未读消息的对话应该在顶部 任何帮助都将不胜感激 编辑: 我现在提出的问题是: SELECT * FROM `messages` join conversations on messages.conversation_i

我有三张桌子: 对话、消息和用户

表的解释在这里。 对话表:

id
user1
user2
消息表:

id
conversation_id
fromUser
toUser
is_read
用户表:

id
name
etc
现在,我想获得特定用户id的对话,比如210。并且,与未读消息的对话应该在顶部

任何帮助都将不胜感激

编辑: 我现在提出的问题是:

SELECT * FROM `messages`
join conversations on messages.conversation_id = conversations.id
where messages.fromUser = 210 or messages.toUser = 210
GROUP by messages.conversation_id
ORDER by messages.is_read ASC, messages.id DESC
我得到的结果是:

预期的基于结果的对话id:

2
8
1724
and then others.

应该很简单,只需向数据库查询中添加
orderby is_read,id DESC


我们再也帮不上忙了,因为您没有提供任何可供我们使用的东西。

如果有人需要,我已经找到了解决方案

SELECT * 
FROM conversations 
JOIN 
(SELECT conversation_id, is_read, fromUser, toUser, MAX(id) as id FROM messages GROUP BY messages.id) message 
ON message.conversation_id = conversations.id
WHERE conversations.user1 = 210 or conversations.user2 = 210
GROUP by conversations.id
ORDER by is_read = 0 desc, toUser !=210

is\u read DESC
可能不正确。如果字段的类型为
ENUM
,它将取决于内部
ENUM
索引。(将字段创建为
ENUM('Y','N')
ENUM('N','Y')不同)
关于它如何响应order by子句,order by子句中主键后面的任何内容都是毫无意义的。您好,我已经编辑了我的问题。请再看一看。请看您是否能帮我做些什么。@JavierLarroulet不,它不是枚举类型,而是int类型。@ParvezMemon什么值对于
的已读/未读消息是\u read
?1和0或类似的内容?如果您至少发布查询,这将返回一个无序的结果,那么可能有人会为您编写一个合适的ORDER BY子句。您好,@PaulSpiegel,现在我已经编辑了问题,请检查您是否可以提供帮助。