@MdaUZH

JOIN SQL из 4 таблиц?

Здравствуйте.
SQL подробно я начал только недавно учить.
И тут запнулся, как вытянуть информацию из таблиц (более 2) ?

Например есть таблица:
1. Рецепт :
id | name | description | ...
2. Компоненты рецепта:
id | recept_id | parent_id | ...
recept_id -> id рецепта из 1 таблицы, parent_id -> id компонента из 3 таблицы
3. Компоненты
id | name | percent | ...
4. Вкусы:
id | taste | recept_id
recept_id -> id рецепта из 1 таблицы

Нужно достать:
1. Всю информацию из рецепта,
2. Информацию о компоненте( который используется в данном рецепте )
2. Вкусы используемые в данном рецепте

Подскажите пожалуйста, как это будет выглядеть, с JOIN я пока не сильно дружу, знаю лишь как вытащить из 2 таблиц и не более, буду очень благодарен.
Всем спасибо :)
  • Вопрос задан
  • 3167 просмотров
Решения вопроса 2
Shwed_Berlin
@Shwed_Berlin
.net Software Developer
я из мира MS SQL, поэтому возможны некоторые несоответствия:
SELECT rcp.*, cmp.*, tst.*
FROM recept AS rcp
  INNER JOIN recept_component AS rcp_cmp ON rcp.id = rcp_cmp.recept_id
  INNER JOIN component AS cmp ON cmp.id = rcp_cmp.parent_id
  INNER JOIN taste AS tst ON tst.recept_id = rcp.id

вместо звездочек указываете конкретные поля которые вас интересуют
т.о. будут выбраны ТОЛьКО рецепты длы которых существуют и вкусы и компоненты

Не знаю можно ли тут постить ссылки, но погуглите "tsql join" по картинкам и найдете все варианты join'ов с наглядным объяснением
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Если умеете делать JOIN двух таблиц, то просто добавьте в запрос ещё два JOIN'а:
SELECT *
  FROM `table1` AS `t1`
  JOIN `table2` AS `t2` ON ...
  JOIN `table3` AS `t3` ON ...
  ...
  JOIN `tableN` AS `tN` ON ...
  WHERE ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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