0

描述: 我有一个私人消息用户数据库。方案:

数据库方案

对于我的任务只有感兴趣的专栏owner_user_idviewer_user_id. 查询的结果SELECT owner_user_id, viewer_user_id FROM mail大致为:

结果 http://screencloud.net//img/screenshots/6dae938eab89faab8f69e683403b1eb2.png

问题

我需要得到一份独特对话的清单。也就是说,从这个列表(*1)中,我必须得到这样的东西(*2)。尽管事实上当您构建查询时,我不知道任何人的身份。

*1一些列表 http://screencloud.net//img/screenshots/1ad2ddeb5afa0d3b97985ab65adaef3f.png

*2 http://screencloud.net//img/screenshots/1d75c3ee60e73f9874a836b738013c5a.png

问题

我怎么做?

我希望我正确地提出了这个问题。

4

3 回答 3

0

您可以使用 Jeffs 答案(不同),但需要“排序”元组以统一您所谓的对话。

例如

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

于 2013-07-17T23:39:28.410 回答
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` 
于 2013-07-18T07:28:45.573 回答
-1

看起来你想要这个:

SELECT DISTINCT owner_user_id, viewer_user_id FROM mail

这将为您提供包含这两列的不同列表

于 2013-07-17T23:38:35.800 回答