Выбор на основе другого выбора из нескольких таблиц - PullRequest
0 голосов
/ 10 сентября 2018

Я пытаюсь сделать следующий запрос:

  1. SELECT family_id от настольных ламп на основе lamp_id
  2. ВЫБРАТЬ family_parents из настольных ламп_family на основе family_id из 1.
  3. ВЫБРАТЬ лампы из настольных ламп на основе family_id, который я получаю из 2.

TL; DR

Я хотел бы использовать один запрос, чтобы получить все лампы на основе идентификатора семейства, но есть несколько семейств, назначенных одному из родителей. Например, в таблице "lamp_family" есть два семейства, у которых есть "parent" с идентификатором 11, это про "Asseto". Теперь, основываясь на "family_id", я хотел бы загрузить все лампы из таблицы "лампы", задав поле "lamp_family" в таблице "лампы". Возможно ли это?

Я пытался объединить таблицы, использовать группировку, к сожалению, безуспешно. настольные лампы

настольные лампы_семейные

1 Ответ

0 голосов
/ 10 сентября 2018

Допустим, ваш ID лампы - 21 (Asseto).

SELECT lamps.* FROM lamps
  JOIN lamps_family ON lamps.lamp_family = lamps_family.family_id
  JOIN (
    SELECT lamps_family.family_id FROM lamps JOIN lamps_family ON
      lamps.lamp_family = lamps_family.family_id
      WHERE lamps.id = 21
    ) lamp ON lamp.family_id = lamps_family.family_id

Это должно работать?

Сначала вы создаете полный набор данных, который объединяет все данные лампы с метаданными lamp_family, и используете другое соединение (вроде самостоятельного объединения) для фильтрации по метаданным конкретной лампы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...