2016-11-23 2 views
0

У меня есть две таблицы, и я хочу выбрать значение слева, но не на правом столе. Я знаю, что это легко. «Left Join» и «Где null», но мне нужна вторая причина. «Столбец 2 = 1» в правой таблице.Sql left internal join + where причины (закрыты)

enter image description here

К сожалению мой английский язык. Надеюсь, этого изображения достаточно, чтобы показать мою проблему. Мне нужно выбрать T и K областей в одном заявлении.

+0

Добавить пример данных таблицы и ожидаемый результат - также форматированный текст. Также покажите нам свою текущую попытку запроса. – jarlh

+0

Вы пробовали это 'WHERE b.column2 null или b.column2 = 1'? – Viki888

+0

Без какой-либо конкретной структуры таблицы я бы сказал, что это невозможно. Ваше левое соединение A-> B не может вернуть K, потому что оно исключено из соединения. Или используйте соединение или другой запрос. Но мы не можем дать этого, не зная некоторой структуры. – Seb

ответ

0

В случае, когда вы выбираете аналогичную последовательность столбцов (и эти столбцы из обеих таблиц совместимы по типу), вы можете использовать union оператор:

select <some_columns> 
from A 
    left outer join B on .... 
where B.Column2 is null 

union 

select <some_columns> 
from B 
where Column2 = 1 
0

Полный присоединиться к B, где b.column2 имеет значение null или b.column2 = 1, а a.column - null