Как я записал бы SQL-запрос, который исключает запись если одна (внешняя) запись от одного до многих соответствий соединения определенное условие?
Например:
Details
ID
1
2
Items
DetailID Item
1 A
1 B
2 B
2 C
Как я выбрал бы подробные записи, где Объекты не включают 'A'?
SELECT *
FROM details d
WHERE NOT EXISTS (
SELECT *
FROM items i
WHERE i.DetailID == d.ID
AND i.Item = 'A')
на основе решения systempuntoout:
SELECT details.*
FROM details
LEFT OUTER JOIN items ON details.ID=items.DetailID AND items.Item = 'A'
WHERE items.DetailID IS NULL
Почему бы просто не использовать INNER JOIN, например:
SELECT details.*
FROM details
INNER JOIN items ON details.ID=items.DetailID AND items.Item<> 'A'