Mysql 使用SQL查询从表中选择数据
我有一个表名“chat_details”,我只想根据时间访问带有绿色下划线的数据,我使用以下查询Mysql 使用SQL查询从表中选择数据,mysql,sql,Mysql,Sql,我有一个表名“chat_details”,我只想根据时间访问带有绿色下划线的数据,我使用以下查询 //suppose $user_id = 1; "SELECT * FROM chat_details WHERE from_user_id='$user_id' OR to_user_id='$user_id' ORDER BY time DESC" 它获取所有的行,因为所有的行在其中一列中都包含user_id=1,但我只需要绿色下划线行,而红色下划线行是因为绿色下划线是最新的,根据时间(列
//suppose $user_id = 1;
"SELECT *
FROM chat_details WHERE from_user_id='$user_id' OR to_user_id='$user_id' ORDER BY time DESC"
它获取所有的行,因为所有的行在其中一列中都包含user_id=1,但我只需要绿色下划线行,而红色下划线行是因为绿色下划线是最新的,根据时间(列),我如何才能仅获取这些绿色下划线?这是一个可行的查询,应该可以解决您的问题
SELECT *
FROM chat_details c
WHERE (c.from_user_id='$user_id' OR c.to_user_id='$user_id')
AND NOT EXISTS (
SELECT 1 FROM chat_details d
WHERE d.from_user_id = c.from_user_id
AND d.to_user_id = c.to_user_id
AND d.time > c.time)
ORDER BY c.time DESC"
实际上我不能测试,希望我没有犯错误
查询选择查询中的所有数据,但仅选择两个用户之间没有更新聊天记录的数据。
对于EXISTS关键字,请参见您的意思,仅获取“最上面的一个”。根据什么指标排名第一?选择行的标准是什么?根据时间(列),你说“根据时间”,但你有11-13、11-26,中间有一整圈。我真搞不懂你是怎么找到绿色下划线的。你能帮我们做些样品吗?