我需要撤出两个字段: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个单独的列。

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

最佳答案

我假设mysql支持交叉连接:

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


这给出了两个表的不同值的笛卡尔乘积。

但是,如果您是指所有现有组合而不是所有可能的组合:

从tbl选择DISTINCT Xsec,CondConfg

10-08 12:37