我在数据库中有以下数据
MAILFROM, MAILTO , TIMESTAMP, MESSAGE
A B 2013-07-01 12:11:12, Hi
B A 2013-07-01 12:12:12, Hi back
A B 2013-07-01 12:13:12, How are you
A C 2013-07-01 12:14:12, Hi there
D A 2013-07-01 12:16:12, Hi
C D 2013-07-01 12:17:12, Hi
Run Code Online (Sandbox Code Playgroud)
如何将其与select组合,以便我得到
AC'评论发生3次
SELECT MAILFROM, MAILTO FROM messages WHERE 'A' IN(FROM,TO) GROUP BY FROM
Run Code Online (Sandbox Code Playgroud)
给
AC和CA但我希望组合在一起.
它只显示AC 3次
该示例是一个邮箱.
这包含:
MAILFROM, MAILTO , TIMESTAMP, MESSAGE
A B 2013-07-01 12:11:12, Hi
B A 2013-07-01 12:12:12, Hi back
A B 2013-07-01 12:13:12, How are you
A C 2013-07-01 12:14:12, Hi there
D A 2013-07-01 12:16:12, Hi
C D 2013-07-01 12:17:12, Hi
Run Code Online (Sandbox Code Playgroud)
SQL列表应该列出这个(唯一的对话)
B 2013-07-01 12:13:12, "Hi" ' Remark Timestap of the latest message
C 2013-07-01 12:14:12, "Hi there"
D 2013-07-01 12:16:12, "Hi"
C D 2013-07-01 12:17:12, "Hi" ' THIS SHOULD NOT BE SHOWN
Run Code Online (Sandbox Code Playgroud)
这意味着这个sql将列出他作为发送者和接收者(从,到)的消息.它应该只列在这个人和发送给谁的人之间,无论谁是MAILFROM或MAILTO.时间戳是他们之间最新消息的日期...备注他永远不会发送到D,无论如何都列出了一个,但是他发送但没有得到任何东西...... B之间是3条消息.所以输出应该只有这3行..
小智 0
我制作了另一个表,其中包含字段 from1 和 to1
SELECT from1, to1 FROM messages
WHERE (from1 LIKE 'A' AND to1 LIKE 'C') OR (from1 LIKE 'C' AND to1 LIKE 'A')
Run Code Online (Sandbox Code Playgroud)
输出
A C
C A
A C
Run Code Online (Sandbox Code Playgroud)