Две связанные таблицы - задачи и действия. Для каждой активной задачи должно быть одно связанное открытое действие. Пытаюсь найти задачи без открытых действий. К вашему сведению, статус активности включает "Открыто", "Завершено" и "Отменено". Статус задачи - Активный и Неактивный.
Относительный новичок в мире SQL, хотя у него есть основные принципы.
Подумал что-то вроде SELECT * from Tasks WHERE Status = Active И количество связанных действий со Status of Open = 0, но я не уверен, как перевести это в SQL.
Прочитал здесь и в других местах несколько сообщений о временных таблицах и внешних соединениях, но я не мог с этим разобраться - полагаю, это было для аудитории немного более продвинутой, чем я.
Любая помощь приветствуется!
Привет, Рикардо, не могли бы вы поделиться данными таблицы вместе с именами столбцов. Это поможет другим лучше понять и поможет вам
Я еще не видел вашу таблицу, но, возможно, вы пытаетесь написать это, если это поможет: Select * From Tasks Where Status = Active AND Open = 0
Может быть, просто ВЫБРАТЬ * из задачи, ГДЕ Статус = Активен И НЕ СУЩЕСТВУЕТ (ВЫБРАТЬ * ИЗ Действия, ГДЕ Activity.Task_Id = Task.Id)
Ух ты, количество и скорость ответов просто потрясающие - отличное и активное сообщество! Спасибо Николасу и mishsx; Между ними и Гордоном внизу, я думаю, мы отправимся на скачки.


Trying to find tasks with no Open activities.
Используйте not exists:
select t.*
from tasks t
where not exists (select 1
from activities a
where a.task_id = t.task_id and
a.status = 'open'
);
Спасибо, Гордон - я верю, что это сделает именно то, что нам нужно. Как я уже упоминал выше, приятно удивлен активностью сообщества - я уверен, что буду использовать ее с пользой в будущем и, возможно, однажды внесу ответ или два. Еще раз спасибо всем!
Как бы вы выразили «количество связанных действий со статусом открытия» в SQL?