2014-11-26 2 views
0

Я хочу найти все компании в таблице A, у которых нет активных мест в таблице B. Активен означает, что флаг Active установлен в true.SQL найти в таблице A, где не в запросе B

Таблица A ID: целое CustomerName: строка Активность: булево

Таблица B ID: целое LocationName: строка TABLEA_ID: целое число Активность: булево

Некоторые из записей в таблице B имеют активные и неактивные местоположения для одного и того же клиента. Я хочу знать, какие клиенты в таблице A не имеют активных местоположений в таблице B.

+1

Какая платформа базы данных? –

ответ

0

Это стандартный тип запроса. Здесь left join подход:

select a.* 
from a left join 
    b 
    on b.tablea_id = a.id and b.active = true 
where b.id is null; 

Точный синтаксис для b.active = true может меняться в зависимости от базы данных.

0

Вам нужно сделать JOIN между таблицами, как

select t1.id,t1.CustomerName, t2.LocationName 
from tablea t1 join tableb t2 on t1.ID = t2.TABLEA_ID 
where t2.Active = false; 
Смежные вопросы