У меня есть две таблицы Уведомление и Подтверждение. Подтверждение имеет поле, которое содержит первичный ключ таблицы уведомлений. В основном у Уведомления будет много Благодарностей.
Tables: Notification Acknowledgment
fields: id, notifier id, parent_id, status
Теперь мне нужно выбрать строки из Уведомления так, чтобы:
- подтверждения нет ГДЕ Acknowledment.parent_id = Notification.id (в основном нет подтверждения для данного конкретного уведомления)
// или
- если есть Подтверждение для Уведомления, затем выберите Уведомление, если какое-либо из Подтверждений с parent_id = Notification.id имеет Acknowledgment.status = someValue
Псевдокод SQL:
"SELECT * FROM Notification (WHERE id is not present in Acknowledgment.parent_id) OR
(WHERE id is present in Acknowledgment.parent_id AND Acknowledgment.status=@someValue"
Я могу разбить его на более простые запросы и добиться этого, но я бы хотел знать один-единственный запрос, чтобы это сделать ..