【问题标题】:mysql find all the possible combinations of one columnmysql查找一列的所有可能组合
【发布时间】:2018-08-07 03:32:47
【问题描述】:

我有一个 UserContacts 表,其中有一列像

contact_id

  • 1
  • 5
  • 6

我想得到以下结果(这是该列值的所有可能对组合)... (1,5),(1,6),(5,6)

有可能吗?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    当然,进行自联接:

    SELECT a.contact_id a, b.contact_id b
    FROM   UserContacts a
      JOIN UserContacts b ON b.contact_id > a.contact_id
    

    sqlfiddle 上查看。

    【讨论】:

    • 是的,这很完美.. 就是这么简单。谢谢
    • 我知道这是一个旧答案,但您将如何扩展此解决方案以创建两个以上唯一列的唯一组合 - 到三、四或五列?
    • @Edward:您需要为每一列加入表一次,并依次关联列,例如 a > bb > c 等。
    【解决方案2】:

    这应该可行

    SELECT t2.contact_id,t1.contact_id FROM UserContacts t1 JOIN UserContacts t2 
    WHERE t1.contact_id <> t2.contact_id
    

    【讨论】:

      【解决方案3】:

      使用交叉连接

      选择 a.contact_id FROM UserContacts a CROSS JOIN UserContacts b

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        相关资源
        最近更新 更多