Хобрук: Ваш путь к мастерству в программировании

Как присоединиться к нескольким таблицам в этом сложном случае?

У меня есть 4 таблицы со следующими отношениями. Table_3 — это центральная таблица звездообразной схемы. Как написать sql для объединения этих 4 таблиц? Сложность в том, как соединить table_1 с table_2? Должен ли я использовать подзапрос (вложенное соединение)?

table_1 <-- table_2 <-- table_3 --> table_4
19.06.2015

  • Если это действительно звезда, то присоединяйтесь к центру со всех сторон. 19.06.2015
  • какова структура таблицы ?? 19.06.2015

Ответы:


1

Для звездообразной схемы вы должны соединить каждую таблицу точно с центральной таблицей.
Должно быть что-то вроде:

select *
from table_3 central
join table_1 t1 on central.id = t1.central_id
join table_2 t2 on central.id = t2.central_id
join table_4 t4 on central.id = t4.central_id
;

Для случая, когда table_1 - вне схемы звезды.

select *
from table_3 central
join table_2 t2 on central.id = t2.central_id
join table_4 t4 on central.id = t4.central_id
join table_1 t1 on t2.id = t1.table_2_id
;
19.06.2015
  • Я хотел бы присоединиться к таблице_3 с таблицей_2 и таблицей_4, а также присоединиться к таблице_2 с таблицей_1. 19.06.2015
  • В этом случае ваша таблица table_1 - не по схеме "звезда". Я добавил новый пример. 19.06.2015
  • Потрясающий! Я так рад!) 19.06.2015

  • 2

    Следуя показанной вами ссылке table_1 ‹-- table_2 ‹-- table_3 --> table_4

    ниже запрос должен получить необходимые данные:

    Select * from table_3 t3
    join table_4 t4 on t3.IdOftable_4 = t4.Id
    join table_2 t2 on t3.IdOftable_2 = t2.Id
    join table_1 t1 on t2.IdOftable_1 = t1.Id
    
    19.06.2015
    Новые материалы

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..

    React Hooks: основы деструктуризации массива
    Kent C. Dodds написал классный пост о том, как грядущая функция React под названием Hooks работает на капоте. Предстоящий хук React useState основан на деструктурировании массива, давайте..

    Пакеты R, используемые в Tesla
    Добро пожаловать обратно! R — очень популярный язык программирования, используемый множеством компаний, включая Tesla! Итак, давайте взглянем на некоторые пакеты R, которые использует Tesla...

    Сокращение и слияние токенов для эффективных моделей VL: обзор
    Часто в задачах, связанных с компьютерным зрением и НЛП, вычислительно затратная и требующая большого объема памяти обработка становится препятствием для более быстрого логического вывода модели, а..