在db中选择两个字段的唯一组合

时间:2014-04-09 03:30:22

标签: mysql select

我需要撤销两个字段:XsecCondConfg我需要从数据库中提取以填充组合框。我已经有两个非常简单的单独查询来提取字段:

SELECT DISTINCT Xsec FROM Table;
SELECT DISTINCT CondConfg FROM Table;

但我需要将它们组合起来填充单个字段。麻烦的是,DISTINCT字段没有正确重叠,即。

  Table
+------------------+
| Xsec | CondConfg |
| -----|-----------|
| 1.5  | abc       |
| 1.5  | abc       |
| 1.5  | def       |
| 2.5  | ghi       |
  etc......

我需要的是:

  Table
+------------------+
| Xsec | CondConfg |
|------|-----------|
| 1.5  | abc       |
| 1.5  | def       |
| 2.5  | ghi       |
  etc......

UNION无法正常工作,因为它只是将它们分组到一个列中,我需要两个独立的列。

我以前做过这个,但很久以前我已经完全忘记了,但我知道有一个非常简单的解决方案。

2 个答案:

答案 0 :(得分:0)

我假设mysql支持交叉连接:

SELECT * 
  FROM (SELECT DISTINCT Xsec FROM tbl) a
       CROSS JOIN 
       (SELECT DISTINCT CondConfg FROM tbl) b

这给了两个表中不同值子的笛卡尔积。

但如果你的意思是所有现有的组合而不是所有可能的组合:

SELECT DISTINCT Xsec,CondConfg FROM tbl

答案 1 :(得分:0)

Select DISTINCT `Xsec`, `CondConfg` From Table1;

Fiddle