说明 我有一个私人消息用户数据库。方案:
我的任务只对感兴趣的专栏owner_user_id
和viewer_user_id
感兴趣。
查询SELECT owner_user_id, viewer_user_id FROM mail
的结果大致为:
Result http://screencloud.net//img/screenshots/6dae938eab89faab8f69e683403b1eb2.png
问题:
我需要获取唯一对话的列表。 也就是说,从这个列表(* 1),我必须得到这样的东西(* 2)。 尽管事实上,当你构建一个查询时,我不知道任何一个人的身份。
* 1 Some list http://screencloud.net//img/screenshots/1ad2ddeb5afa0d3b97985ab65adaef3f.png
* 2 http://screencloud.net//img/screenshots/1d75c3ee60e73f9874a836b738013c5a.png
问题:
我是怎么做到的?
我希望我能正确地提出这个问题。
答案 0 :(得分:0)
看起来你想要这个:
SELECT DISTINCT owner_user_id, viewer_user_id FROM mail
将为您提供包含这两列的独特列表
答案 1 :(得分:0)
你可以使用杰夫的回答(不同)但需要“命令”元组,以便将你所谓的对话单义化。
e.g。
SELECT distinct
if(owner_user_id>viewer_user_id,owner_user_id,viewer_user_id),
if(viewer_user_id>owner_user_id,viewer_user_id,owner_user_id)
FROM mail
RGDS [R
答案 2 :(得分:0)
找到解决方案!
SELECT DISTINCT
LEAST(
`owner_user_id`,
`viewer_user_id`
) AS first_user,
GREATEST(
`owner_user_id`,
`viewer_user_id`
) AS second_user
FROM
`mail`