@cubaPro

Как объединить три таблицы MySQL и исключить определенные строки?

Имеются три таблицы:
1. Таблица с науками
2. Таблица с изученными науками
3. Таблица указывающая какая наука откроется после изучения определенной.

Наук может быть овер 500 поэтому не хочу разом выводить все науки, да и смысла нет. Нужно вывести только те которые возможно изучить, а так же скрыть изученные.

В моем случае изучено Земледелие и Скотоводство. Они открыли доступ для изучения: Молоко, мясо, колесо, железо.
Машина и Ракета недоступны. Их нужно скрыть.

Два дня пытаюсь сделать с помощью JOIN`ов. Получается бред. Подскажите пожалуйста каким образом можно это реализовать?

5e9acde04c40e775464640.png

5e9acde9196b4624944211.jpeg
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Что тут можно делать два дня?
SELECT `s`.*
  FROM `learned_sciences` AS `l`
  JOIN `science_branch` AS `b` ON `b`.`science_id` = `l`.`science_id`
  JOIN `sciences` AS `s` ON `s`.`id` = `b`.`open_science_id`
  WHERE `l``user_id` = :iserId
    AND `s`.`id` NOT IN (
      SELECT `science_id`
        FROM `learned_sciences`
        WHERE `user_id` = :userId
    )
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы