2013-10-11 4 views
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 не так.

ответ

2

просто не выбирайте колонку2, если она вам не нужна?

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 
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 

Вы можете выбрать столько столбцов из КТР в соответствии с вашими требованиями.

Смежные вопросы