2013-12-10 3 views
-1

У меня есть требование, в котором я должен идентифицировать родительскую запись, у которой нет соответствующей дочерней записи. например.Родитель без ребенка sql

Родитель Таблица имеет 6 записей: A, B, C, D, E, F
Ребенок Таблица1 имеет отношение к: A, B
Ребенок Table2 имеет отношение к: C, D

Так как должен ли я сформировать свой запрос, который вернет мне результат E и F. Поскольку оба значения не используются ни в одной из дочерних таблиц.

ответ

1

Это не содержит небольшой информации для конкретного примера, но я предполагаю, что у вас есть parentID в childTable1 и childTable2 и id в parentTable.

Это должно работать:

SELECT * 
FROM parentTable p 
WHERE NOT EXISTS(
       SELECT 1 
       FROM childTable1 c1 
       WHERE c1.parentId = p.id) 
    AND NOT EXISTS(
       SELECT 1 
       FROM childTable2 c1 
       WHERE c1.parentId = p.id) 
+0

Спасибо Филипе. Он работал – Sahil

+0

Если вы хотите проверить несколько столбцов, вы можете добавить еще одну проверку в предложение WHERE: 'OR c1.anotherCol = p.id' –

Смежные вопросы