首页 / MYSQL / 具体的mysql选择查询
具体的mysql选择查询
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了具体的mysql选择查询,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1329字,纯文字阅读大概需要2分钟。
内容图文
![具体的mysql选择查询](/upload/InfoBanner/zyjiaocheng/898/b241f5058e134f4bba7934e1381f53b5.jpg)
今天我需要你的帮助来获得一个特定的SQL选择查询.
我有以下表格:
并且在关于特定id的特定查询(在这种情况下为id 1)之后,我想得到如下结果:
user_id(id_sender / id_recipient的别名),日期(可能是最大函数,因为我想要将最新日期分组),消息(消息的计数函数):
10 | 2012-01-14 09:10:05 | 4
11 | 2012-01-13 13:52:49 | 1
13 | 2012-01-13 20:01:17 | 1
14 | 2012-01-14 09:20:17 | 1
我尝试了很多,但没有得到确切的结果 – 所以我的方法是这样的:
SELECT `id_recipient`, `id_sender`, MAX(`date`) AS `date`, COUNT(*) AS `messages` FROM `table` WHERE `id_recipient` = 1 OR `id_sender` = 1 GROUP BY `id_recipient`, `id_sender`
但后来我得到了这个结果:
它不是那么糟糕,但你可以看到第4行应该包含在第一行的结果中.
我希望你能帮助我.随便问一下smth是否不清楚.
提前致谢,
问候
解决方法:
好的,因为我们知道id_recipient的值,我们可以使用一些数学来欺骗SQL来完成这个令人讨厌的查询.
设n是感兴趣的人的id值.
我们知道id_recipient和id_sender的配对总是包括id值为n的用户.基于where子句.
因此,id_recipient id_sender == n id_otherPerson为true.
生成的查询将与此非常相似.
(已经有一段时间了,但我认为我没有任何语法问题)
SELECT (`id_recipient` + `id_sender` - n) AS `id_otherPerson`,
MAX(`date`) AS `date`, COUNT(*) AS `messages`
FROM `table`
WHERE `id_recipient` = n XOR `id_sender` = n
GROUP BY `id_otherPerson`;
编辑:我已将其更改为异或,因此如果人员n消息人员n,则不会导致所有值增加n已自我消息的次数.
内容总结
以上是互联网集市为您收集整理的具体的mysql选择查询全部内容,希望文章能够帮你解决具体的mysql选择查询所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。