2015-03-17 1 views
1

На этой странице Check if column value exists in another column in SQLлогический столбец значений, содержащихся в другом столбце - SQL

пользователь хочет получить идентификаторы, содержащиеся как в Calling_ID, что в колонках Called_ID. Предположим, у меня есть столбец в двух разных таблиц, скажем

Table T1 
Calling_ID 
27 
15 
80 
90 
60 
88 
15 
30 
27 
40 

и

Table T2 
Called_ID 
10 
20 
90 
88 
30 
40 
60 
40 
95 
30 

Другой парень хотел бы, как результат 90, 88, 30 и 40 - Я хотел бы, как результат булево столбец этого типа

Calling_ID contained 
27   0 
15   0 
80   0 
90   1 
60   0 
88   1 
15   0 
30   1 
27   0 
40   0 

Как я могу это сделать? Большое спасибо!

ответ

1

Вы можете присоединиться влево от T1 до T2, и проверить, если вызываемый идентификатор NULL, например:

SELECT 
    Calling_ID, 
    CASE 
     WHEN T2.Called_ID IS NULL THEN 0 
     ELSE 1 
    END AS Contained 
FROM T1 
LEFT JOIN T2 ON T1.Calling_ID = T2.Called_ID 
0

Попробуйте использовать левое соединение с case..when..then, чтобы проверить, называется идентификатор является нулевым затем вывод 0 else как 1:

SELECT t1.calling_id, CASE WHEN t2.called_id IS NULL THEN 0 ELSE 1 END CASE AS "contained" 
FROM t1 LEFT JOIN t2 
ON t1.calling_id = t2.called_id 
Смежные вопросы