如何在mysql中组合矩阵?

时间:2015-11-03 15:21:29

标签: mysql sql

我有一些名字:

ID NAME
1   A
2   B
3   C
4   D

我想将它们作为矩阵插入:

ID NAME1 NAME2
     A     B
     A     C
     A     D
     B     C
     B     D
     C     D

所以NAME1 <> NAME2和组合可能只发生一次。

2 个答案:

答案 0 :(得分:3)

这样的事情:

SELECT t1.Name, t2.Name
FROM mytable AS t1
INNER JOIN mytable AS t2 ON t1.Name < t2.Name
ORDER BY t1.Name, t2.Name

我们的想法是对所有后续行执行自联接。

Demo here

答案 1 :(得分:2)

或者您也可以尝试:

SELECT t1.name, t2.name FROM table_name t1
LEFT JOIN table_name t2 ON t1.name != t2.name AND t1.ID < t2.ID
WHERE t2.name IS NOT NULL
ORDER BY t1.name ASC, t2.name ASC;

SQLFiddle demo here