#sql #db2 #where-clause #exists
#sql #db2 #where-предложение #существует
Вопрос:
Допустим, у меня есть этот запрос:
select A.ID_NUM,A.EFF_DT,B.STRT_DT,B.END_DT
FROM MEMBERSHIP A
WHERE EXISTS
(SELECT 1 FROM PLAN B
WHERE A.ID = B.ID)
Как мне добавить столбцы из таблицы PLAN (B.STRT_DT, B.END_DT) в инструкцию select?
Я получаю сообщение об ошибке: B.STRT_DT недопустимо в контексте, где оно используется SQLCODE = 206
Ответ №1:
Вы используете JOIN
:
SELECT M.ID_NUM, M.EFF_DT, P.STRT_DT, P.END_DT
FROM MEMBERSHIP M JOIN
PLAN P
ON M.ID = P.ID;
Ответ №2:
Объединение было бы самым простым способом, хотя, если ваша таблица PLAN не уникальна в своем столбце ID, вам нужно будет добавить DISTINCT либо до (либо после) объединения.
SELECT A.ID_NUM,A.EFF_DT,B.STRT_DT,B.END_DT
FROM MEMBERSHIP A
JOIN (SELECT DISTINCT ID FROM PLAN) B
ON ( A.ID = B.ID )