Как использовать Join как столбец Select - PullRequest
0 голосов
/ 25 декабря 2011

У меня следующий запрос:

SELECT X.ID, X.NAME, CASE R.ID WHEN NOT NULL THEN 1 ELSE 0 END ISRELATED
FROM TABLE X
INNER JOIN RELATIVE R ON R.NAMEID = X.ID

Я пытаюсь получить результаты, похожие на эту структуру, а не извлекать повторяющиеся строки из таблицы X:

ID
NAME
ISRELATED (boolean)

Любойпредложения?Спасибо.

Ответы [ 3 ]

2 голосов
/ 25 декабря 2011

Использование INNER JOIN вернет только те строки из X, которые имеют соответствующую строку в R. Вместо этого используйте левое внешнее соединение.

SELECT DISTINCT X.ID, X.NAME, CASE WHEN R.ID IS NOT NULL THEN 1 ELSE 0 END ISRELATED 
FROM TABLE X 
LEFT OUTER JOIN RELATIVE R ON R.NAMEID = X.ID 
0 голосов
/ 25 декабря 2011

Я думаю, что у вас есть ошибка в CASE и вы должны использовать LEFT JOIN

SELECT DISTINCT
    X.ID, 
    X.NAME, 
    CASE WHEN R.ID IS NOT NULL THEN 1 ELSE 0 END ISRELATED 
FROM TABLE X 
LEFT JOIN RELATIVE R ON R.NAMEID = X.ID 
0 голосов
/ 25 декабря 2011

попробуйте

SELECT DISTINCT X.ID, X.NAME, CASE WHEN R.ID IS NOT NULL THEN 1 ELSE 0 END ISRELATED 
FROM TABLE X 
INNER JOIN RELATIVE R ON R.NAMEID = X.ID 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...