从同一个表中的2列检索DISTINCT值作为一个有序列表

时间:2011-06-15 19:46:03

标签: php mysql distinct

我想在同一个表中获取两列数据,并从有序列表中返回两者中的唯一记录。我试过这个:

SELECT DISTINCT column1,column2 FROM table ORDER BY column1 ASC

然而,这显然会返回两列,column2具有重复项,并按列1排序。

我希望收到类似

的内容
Abcde [column1]
Beefr [column2]
Ceeed [column1]
Desss [column1]
...etc

这可能吗?如果这有帮助,我也在使用PHP?

3 个答案:

答案 0 :(得分:3)

你需要做一个工会

从表中选择distinct column1 v 联盟 从表中选择distinct column2 v 按v

排序

答案 1 :(得分:0)

你可以使用这样的东西(语法取决于数据库引擎):

SELECT DISCTINCT column
FROM
   ( 
    SELECT column1 as column FROM table
    UNION
    SELECT column2 as column FROM table
   )
ORDER BY column ASC

请参阅dbms手册以检查UNION子句的语法

答案 2 :(得分:0)

tbl1 COL1 | tbl2 COL2 | NEWCOL(结论是我们)


a ------------- a ------------- a

b ------------- b ------------- b

c ------------- d ------------- c

e ------------- f ------------- d

------------- ------------- e

------------- ------------- f

Auto DISTINCT,这项工作。

$Sql="SELECT COL1 AS NEWCOL FROM tbl1 UNION SELECT COL2 FROM tbl2 ORDER BY NEWCOL ASC";

    $q=mysql_query($Sql) or die(mysql_error());
        while($rs=mysql_fetch_array($q)){
            echo $rs['NEWCOL'].'<br/>';
        }