JOIN нескольких таблиц | Практика по SQL

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии •

  • @klochkovov3909
    @klochkovov3909 3 года назад +24

    Андрей, спасибо огромное Вам! Благодаря Вашему курсу по информационным технологиям, протоколам, TLS, DNS,HTTPS и т.д. я подготовился и прошёл очень сложное собеседование! Желаю развития вашему каналу и больше подписчиков!

  • @cooperanderson8651
    @cooperanderson8651 Месяц назад

    Очень хороший урок, мне понравился! Смотрю уже третий раз, пытаюсь разобраться от и до.

  • @gucha7923
    @gucha7923 11 месяцев назад +1

    Спасибо большое за данный видео урок, очень помогает в обучении! Понял свои ошибки в коде при объединении 3 таблиц, после просмотра ролика смог все исправить, и теперь все отлично работает.
    Как говорится век живи век учись!)

    • @AndreySozykin
      @AndreySozykin  11 месяцев назад

      Пожалуйста! Рад, что видео полезно!

  • @la138
    @la138 Год назад

    Отличное объяснение. Если медленно, можете ставить x1,5. Спасибо огромное!

  • @nephritemontague2872
    @nephritemontague2872 Год назад +1

    Отличный урок, спасибо большое!

  • @ГоворовКонстантин-с7ю
    @ГоворовКонстантин-с7ю 8 месяцев назад

    Спасибо все очень понятно. И в sql academy я думаю по началу очень удобно обучаться так как есть подсказки.

  • @sumburno
    @sumburno Год назад +1

    Подскажите, а вот такого типа визуальные редакторы какие есть? СУБД. И к sqlite такое можно подключить?

  • @resident77777
    @resident77777 5 месяцев назад

    Дякую за корисний контент :))))))

  • @КириллЛарионов-м7ц
    @КириллЛарионов-м7ц 3 года назад

    Спасибо, с каждым уроком все интереснее и интереснее.

  • @ДмитрийФурсов-м5ш
    @ДмитрийФурсов-м5ш 3 года назад

    Андрей спасибо за вашу работу, всё всегда понятно и содержательно!

  • @eugeneflynn
    @eugeneflynn 3 месяца назад

    Спасибо!

  • @dims9998
    @dims9998 3 года назад +2

    Спасибо! Прям все просится, имея несколько таблиц, автоматизировать)

  • @MirDiVich
    @MirDiVich 3 года назад +4

    Спасибо вам большое. Заснул за 2 минуты. Помогли.

  • @kuli4eg
    @kuli4eg 2 года назад

    Почему в полной записи вы идете обраным ходом от Трип к Имени?

  • @wce-tube
    @wce-tube 2 года назад +1

    Браво!

    • @AndreySozykin
      @AndreySozykin  2 года назад

      Спасибо!

    • @wce-tube
      @wce-tube 2 года назад

      @@AndreySozykin в ВК в личку написал про ошибки.

  • @АлександрВыскребцев

    Благодарю!

  • @СветланаПобоженская-з8х

    Спасибо за урок. Все понятно, кроме одного: в теории Вы учили ставить название таблицы.столбец (т.е. Select Trip.Town_to), а в данном примере не уточняете столбец (Select Town_to). У меня были успешны оба варианта в итоге. Это потому, что данный столбец с уникальным названием?

    • @AndreySozykin
      @AndreySozykin  3 года назад

      Да, именно так. Название таблицы обязательно, если столбец с одинаковым именем есть в двух таблицах. В противном случае SQL и без названия таблицы сможет понять, откуда взять столбец.

  • @ИринаГончарова-в5п
    @ИринаГончарова-в5п 2 года назад +1

    На практике, в реальной, масштабной базе разве допустимо использовать такое обилие соединений? Сделал четвёртый join и дождался результата через несколько дней? Такое объединение по синтаксису допустимо, но с точки зрения производительности как лучше написать? Подскажите, пожалуйста

    • @AndreySozykin
      @AndreySozykin  2 года назад

      Производительность - это сложный вопрос, она определяется отдельно для каждого запроса. В общем виде сложно дать рекомендации. На практике объединение данных из трех или четырех таблиц вполне может работать быстро, но придется оптимизировать запрос.

    • @ИринаГончарова-в5п
      @ИринаГончарова-в5п 2 года назад

      Спасибо за ответ! Правда моё любопытство не удовлетворено☺

  • @TheStoorey
    @TheStoorey Год назад

    Добрый день, спасибо за видео, только есть один вопрос. Есть таблица с данными пользователей назовем ее a.users в ней есть id пользователей и она сопоставима с второй таблицей к примеру a.user_spots в данной таблице у наc есть два блока user_id и spots_id. и есть третья таблица a.spots в ней у нас есть собственно блок spots_id что сопоставим с таблицей a.user_spots. Цель сопоставить три таблицы с выводом id юзера и присвоенной ему площадки? Просто я не совсем понимаю как мне сделать запрос на одну таблицу и по факту вообще кажется что так не работает. Буду признателен если подскажите или направите в нужном ключе.

  • @simexlab
    @simexlab 2 года назад

    Как будет выполняться INNER JOIN если в столце, по которому происходит обединение есть неуникальные значения (т.е. они повторяются)?

  • @solong4347
    @solong4347 2 года назад

    Привет. А если я хочу сделать запись в таблицу со связями. Мне нужно создавать INSERT INTO и JOIN тоже? Как правильно создать запрос, чтобы в 3 таблицу подтянуло данные с 2 остальных ?

  • @ОлександрОпенько-ь6м

    спасибо, было интересно. #sql

  • @DenisSvistoplasov
    @DenisSvistoplasov Год назад

    А правильно ли направлены стрелки в схеме связей таблиц?

    • @emilusm1903
      @emilusm1903 Год назад

      это не стрелки, а как бы ветви "от одного ко многим". Тоже поначалу думал что это стрелки

    • @DenisSvistoplasov
      @DenisSvistoplasov Год назад

      @@emilusm1903 Как бы то ни было, если считается, что у связи *ветвистый* конец указывает на "многих", то "многими" здесь являются поля id в таблице Trip и таблице Passenger.
      А если считается, что у связи *прямой* конец указывает на "многих", то "многими" здесь являются поля id в таблице Company.
      А id - уникальны. При любой интерпретации направления связей: в данной схеме есть противоречие.

  • @БорисАлиханов-у4з

    На слабенькую троечку. Было бы несколько рейсов было бы десяток Парижев и Владивостоков. Где distinct?

  • @PinkPul
    @PinkPul Год назад

    Что делать если в БД в разных таблицах "Passenger" и "Company" два одинаковых имени "name"
    Как их объединить, чтобы name из двух таблиц подтягивались?
    Если через JOIN добавлять таблицу Passenger , то подтягиваются имена пассажиров
    А если не добавлять таблицу, то подтягиваются названия компаний
    Как объединить name из двух разных таблиц?

  • @ericmccormick731
    @ericmccormick731 2 года назад +1

    Аа привет Андрей, а что у вас с голосом?

    • @AndreySozykin
      @AndreySozykin  2 года назад

      С голосом, насколько могу судить, все хорошо. Что не так?

  • @evgenykuznetsov7490
    @evgenykuznetsov7490 3 года назад +1

    Андрей спасибо за очень полезную тему с join нескольких таблиц! Можно спросить совета по своему вопросу? у меня есть три таблицы, первая сообщения пользователей с полями в том числе fk юзера, вторая id сообщения и userid кто поставил лайк этому сообщению, третья id сообщения и userid кто поставил дизлайк этому сообщению. Я делаю запрос в hibernate чтобы мне вывел все сообщения, количество лайков каждому сообщению и количество дизлайков. На sql это будет так:
    select m.id as message, count(ml.liked_users_id), count(md.disliked_users_id)
    from message as m left join message_likes as ml on (m.id=ml.message_id)
    left join message_dislikes as md on (m.id=md.message_id) group by m.id;
    Этот запрос мне дает три колонки как я просил НО количество дизлайков он считает таким же как и лайков с соседнего столбца!! то есть 3 лайка у сообщения и 3 диза, хотя в реальности дизлайка только 1! Если делать запросы отдельно все работает корректно, но мне необходим один запрос т.к. он заполняет dto обьект в spring boot.
    Я просто полумал есть ли у вас похожая наработка или просто что-нибудь посоветуете?
    с меня донат даже без ответа))
    офигенный формат! это намного эффективнее чем просто лекция, да и быстрее наверное(слайды не надо готовить:))

    • @AndreySozykin
      @AndreySozykin  3 года назад

      Что происходит, когда дизлайков больше, чем лайков?
      Мне кажется, что на первом этапе таблица Messages объединяется с таблицей Message_likes, количество строк будет столько, сколько лайков. А на следующем этапе таблица Message_dislikes объединяется с составной таблицей с первого этапа, где столько строк, сколько лайков. К каждой строке с лайком добавляется столбец с дизлайком. Поэтому count выдает одинаковое количество строк.

    • @evgenykuznetsov7490
      @evgenykuznetsov7490 3 года назад

      @@AndreySozykin дело в том что когда есть только дизлайки (лайков еще ноль) то считается правильное количество, но как только ставится лайк количество уравнивается) это очень странно, но думаю вы правильно описали причину, проблема что я не понимаю как обьединить таблицы по другому, пробовал но выдает неправильные цифры, может как то использовать вложенный запрос типа для дизлайков (select md.id, count(md.dislikes) from md group by md.id) а затем уже обьединять?

  • @dogvscatfunny9956
    @dogvscatfunny9956 Год назад

    Не чего понять не возможно, проще дописать в таблицу, чем создавать такую путаницу