0

我试图在我的 SQL 连接中的某个列中获取唯一值列表。

我的加入如下:

select P.column1, A.column2 from Table1 P
inner join Table2 A
on P.column1=A.column1

我想获得第 1 列的不同值的列表。我试过了

Select distinct A.column1 from (select P.column1, A.column2 from Table1 P
inner join Table2 A
on P.column1=A.column1)

但 SQL 不喜欢这样。

4

2 回答 2

2

如果不需要,就不要选择 column2 吗?

select distinct P.column1 
from Table1 P
inner join Table2 A
on P.column1=A.column1

或者如果出于某种未知原因你真的需要一个子查询,你需要给它起别名。

Select distinct s.column1 from (select P.column1, A.column2 from Table1 P
inner join Table2 A
on P.column1=A.column1) s
于 2013-10-11T17:05:07.817 回答
0

我可以建议使用 CTE 代替子查询吗?

您可以按如下方式重新编写查询:

WITH CTE
AS
(
    SELECT P.column1,
        A.column2
    FROM Table1 P
    INNER JOIN Table2 A
    ON P.column1=A.column1
)
SELECT DISTINCT Column1,
    Column2
FROM CTE

您可以根据需要从 CTE 中选择尽可能多的列。

于 2017-03-27T05:57:48.690 回答