我有5000行的条目表。现在我想在第一列的引用中添加两个列。 (即)应将第一个条目与所有条目进行比较,不应将其与相同的值进行比较。 (即)如果值“a”用于比较,则应将“a”与同一列中的所有条目进行比较,但不是相同的值。请考虑以下示例
这是我的表格。
----------
entry1
----------
a
b
c
d
预期的表输出
----------------------
entry 2 | entry 3
----------------------
a | b
a | c
a | d
b | a
b | c
b | d
c | a
c | b
c | d
d | a
d | b
d | c
如果有人知道plz帮我代码。
答案 0 :(得分:2)
您可以将CROSS JOIN与WHERE子句一起使用,不包括相等的值。
假设表名只是表:
public static void main(String[] args){
public foo(){}
}
这提供了您想要的输出,然后您将必须使用ALTER TABLE语句。
此致
答案 1 :(得分:1)
获得此用途:
SELECT t1.entry AS entry2 ,t2.entry AS entry3
FROM mytable t1
LEFT JOIN mytable t2 ON t1.entry <> t2.entry
ORDER BY t1.entry,t2.entry;
<强>示例强>
MariaDB []> select entry from mytable;
+-------+
| entry |
+-------+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
+-------+
6 rows in set (0.00 sec)
MariaDB []> SELECT t1.entry,t2.entry
-> FROM mytable t1
-> LEFT JOIN mytable t2 ON t1.entry <> t2.entry
-> ORDER BY t1.entry,t2.entry;
+-------+-------+
| entry | entry |
+-------+-------+
| 1 | 2 |
| 1 | 3 |
| 1 | 4 |
| 1 | 5 |
| 1 | 6 |
| 2 | 1 |
| 2 | 3 |
| 2 | 4 |
| 2 | 5 |
| 2 | 6 |
| 3 | 1 |
| 3 | 2 |
| 3 | 4 |
| 3 | 5 |
| 3 | 6 |
| 4 | 1 |
| 4 | 2 |
| 4 | 3 |
| 4 | 5 |
| 4 | 6 |
| 5 | 1 |
| 5 | 2 |
| 5 | 3 |
| 5 | 4 |
| 5 | 6 |
| 6 | 1 |
| 6 | 2 |
| 6 | 3 |
| 6 | 4 |
| 6 | 5 |
+-------+-------+
30 rows in set (0.00 sec)