查找具有两列的唯一组合的所有行

祖海卜·阿里

我有这个桌子messages;

sender_id    recipient_id
1            2
1            3
1            3
2            1
3            1
2            3

我希望选择这样的行:

  1. 任一sender_idreceiver_id= current_user.id
  2. 另一个字段应该是唯一的。

即我想从表中选择唯一,sender_id = 2或者recipient_id = 2我需要以下结果:

sender_id    recipient_id
2            1
2            3

怎么做?
为什么?因为我希望构建一个类似于Facebook的收件箱,在该收件箱中,已发送和已接收的消息将被聚合,而此查询是迄今为止的瓶颈。

我正在使用Rails 3.2和Postgres 9.3。

欧文·布兰德斯特(Erwin Brandstetter)
SELECT sender_id AS user_id, recipient_id AS other_user_id
FROM   messages
WHERE  sender_id = $current_user_id

UNION
SELECT recipient_id, sender_id
FROM   messages
WHERE  recipient_id = $current_user_id
-- ORDER BY 1, 2  -- optional

UNION(not UNION ALL)从结果中删除重复项,从而DISTINCT不必要。您可能希望ORDER BY在末尾添加以进行排序的输出。

假设一个大表具有较少的合格行,则两个btree索引通常可提供最佳性能。一个以领导或只有领导sender_id,另一个以领导或仅领导recipient_id

单个多列索引(sender_id, receiver_id)反之亦然)也可以,但是通常较慢。看:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

查找具有两列的唯一组合的所有行

来自分类Dev

删除除两列的最新唯一组合以外的所有内容

来自分类Dev

删除除两列的最新唯一组合以外的所有内容

来自分类Dev

从数据框中选择具有多列值的唯一组合的行

来自分类Dev

仅提取具有R中列值的唯一组合的那些行

来自分类Dev

如何从一个表(具有两列的唯一组合)中选择所有SQL行,而另一个表中没有相同的组合

来自分类Dev

组合 3 个表以生成所有列的唯一组合

来自分类Dev

查找固定大小的所有唯一组合以达到给定的平均范围

来自分类Dev

查找简单路径的所有唯一组合

来自分类Dev

递归函数来获得两个或多个的所有唯一组合

来自分类Dev

如何从SQL中的1列返回所有唯一组合?

来自分类Dev

熊猫:计算具有NaN值的四列中的唯一组合

来自分类Dev

一组值的所有唯一组合

来自分类Dev

从两个字符串中获取所有唯一组合 c#

来自分类Dev

您如何约束具有大量非唯一组合的组合键?

来自分类Dev

给定唯一组合的两列汇总

来自分类Dev

为变量的每个唯一组合创建具有n个随机数的列

来自分类Dev

查询表中具有一个值但没有另一个值的所有唯一组合

来自分类Dev

生成项目的所有唯一组合

来自分类Dev

找到重叠项的所有唯一组合?

来自分类Dev

如何找到多维数组中每个元素的所有唯一组合

来自分类Dev

每次使用相同的选项获得x个斑点的所有唯一组合

来自分类Dev

5 * 12网格中所有唯一组合的算法

来自分类Dev

生成项目的所有唯一组合

来自分类Dev

如何找到多维数组中每个元素的所有唯一组合

来自分类Dev

从数组获取给定数量的元素的所有唯一组合

来自分类Dev

从排列列表中获取所有唯一组合

来自分类Dev

找到 1 到 k 之间 n 个数字的所有唯一组合

来自分类Dev

JavaScript,从多个数组中获取所有唯一组合

Related 相关文章

  1. 1

    查找具有两列的唯一组合的所有行

  2. 2

    删除除两列的最新唯一组合以外的所有内容

  3. 3

    删除除两列的最新唯一组合以外的所有内容

  4. 4

    从数据框中选择具有多列值的唯一组合的行

  5. 5

    仅提取具有R中列值的唯一组合的那些行

  6. 6

    如何从一个表(具有两列的唯一组合)中选择所有SQL行,而另一个表中没有相同的组合

  7. 7

    组合 3 个表以生成所有列的唯一组合

  8. 8

    查找固定大小的所有唯一组合以达到给定的平均范围

  9. 9

    查找简单路径的所有唯一组合

  10. 10

    递归函数来获得两个或多个的所有唯一组合

  11. 11

    如何从SQL中的1列返回所有唯一组合?

  12. 12

    熊猫:计算具有NaN值的四列中的唯一组合

  13. 13

    一组值的所有唯一组合

  14. 14

    从两个字符串中获取所有唯一组合 c#

  15. 15

    您如何约束具有大量非唯一组合的组合键?

  16. 16

    给定唯一组合的两列汇总

  17. 17

    为变量的每个唯一组合创建具有n个随机数的列

  18. 18

    查询表中具有一个值但没有另一个值的所有唯一组合

  19. 19

    生成项目的所有唯一组合

  20. 20

    找到重叠项的所有唯一组合?

  21. 21

    如何找到多维数组中每个元素的所有唯一组合

  22. 22

    每次使用相同的选项获得x个斑点的所有唯一组合

  23. 23

    5 * 12网格中所有唯一组合的算法

  24. 24

    生成项目的所有唯一组合

  25. 25

    如何找到多维数组中每个元素的所有唯一组合

  26. 26

    从数组获取给定数量的元素的所有唯一组合

  27. 27

    从排列列表中获取所有唯一组合

  28. 28

    找到 1 到 k 之间 n 个数字的所有唯一组合

  29. 29

    JavaScript,从多个数组中获取所有唯一组合

热门标签

归档