Помогите с запросом-SQL

226
10 июня 2018, 13:10

Есть такая бд с таблицами.

Допустим есть 3 секции(sections), в каждой секции разное кол-во уроков(lessons), для каждого аккаунта предусмотрен отчет(reports) по каждому уроку. Состояние checked может менять только определенная группа юзеров.

Суть вопроса:

Имеется какой-то id аккаунта. Надо получить выборку секций, которые он прошел. Скажем если юзер с id = 100 прошел все уроки 1 секции(прошел: reports.checked = 1), и 2 урока из 5-ти во 2 секции, то запрос должен вернуть данные только по 1 секции.

Запрос в студию пожалуйста

Answer 1

вроде все просто: внутри находим секции, в которых отсутствуют отмеченные уроки. снаружи находим секции, для которых не существует секции с отсутствующими отмеченными. такое двойное отрицание )

select * from sections
where not exists (
    select top 1 * from sections as s
    join lessons as l on (s.Id = l.section_id)
    where s.Id = sections.Id
      and not exists (
        select * from reports as r
        where l.id = r.lesson_id
          and r.checked = 1
    )
)

или с явно разделенными логическими частями запроса

with notChecked as (
    select s.id from sections as s
    join lessons as l on (s.Id = l.section_id)
    where not exists (
        select * from reports as r
        where l.id = r.lesson_id
            and r.checked = 1
    )
)
select * from sections
where not exists (
    select top 1 * from notChecked
    where sections.id = notChecked.id
)
READ ALSO
Журнал учёта навыков на php

Журнал учёта навыков на php

Делаю журнал учёта собственных навыков программирования, на php

254
Извлечение значений из массива (js)

Извлечение значений из массива (js)

Я отправляю post-запрос на сервер, а php даёт в ответ массив, но значения из массива я извлечь не могу

192
Замена содержимого тегов <price> xml файла

Замена содержимого тегов <price> xml файла

Как с помощью регулярки и php-функций заменить содержимое всех тегов xml файла на это же содержимое, но умноженное на 32? Нужно для импорта товаров...

191
Подключение к БД через SSL PHP MySQL

Подключение к БД через SSL PHP MySQL

Друзья можете подсказать как можно подключиться к БД через SSLЯ нашел в интернете такой код для подключение

202