• Как исправить запрос?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега MySQL
    Поскольку id после группировки может быть несколько, то нужно использовать аггрегатные функции для их получения. В данном случае - GROUP_CONCAT().

    Ну или, если очень хочется получить каждый id в отдельной строке, можно обернуть ваш запрос в другой:
    select * from test_prep_materials where PATH in (
      select tpm.PATH
      from tests as t 
      left join test_prep_materials as tpm on tpm.TID = t.ID
      group by tpm.PATH
      having max(t.YEAR) < 2024 and min(t.YEAR) > 2022
    )


    P.S. Логичнее, вроде, джойнить тесты к материалам, а не наоборот.
    Ответ написан
    6 комментариев