Перейти к содержимому



Подстановка значений средствами SQL

#1 FeDeRaL
FeDeRaL
  • Неактивные
  • 6 сообщений
  • Репутация: 1
0

Отправлено 27 Ноябрь 2013 - 14:39

Столкнулся с ситуацией - есть таблица, в ней внешний ключ. Вместо id этого ключа нужно было подставить его значение из таблицы. С этим справился благодаря INNER JOIN.
Теперь задача несколько усложнилась - таблица с двумя внешними ключами. Вместо id этих ключей надо подставить их значения из двух разных таблиц. Возможно ли это организовать средствами языка SQL?

Для тех кто не понял о чём я, выкладываю картинки:

Изображение

Изображение
Есть оценка и id студентов, и id предмета. Заменить id на значения.

 

 

  • 0

#2 FeDeRaL
FeDeRaL
    Topic Starter
  • Неактивные
  • 6 сообщений
  • Репутация: 1

Отправлено 27 Ноябрь 2013 - 15:11

Нашёл решение в инете - воспользоваться MS Access. Создал аналогичные таблички, сгенерировал запрос и посмотрел SQL код.

Вышло:
SELECT students.familiya, students.imya, students.otchestvo, subjects.nazvanie_sub, ocenki.ocenka
FROM subjects
INNER JOIN (
students
INNER JOIN ocenki ON students.id_student = ocenki.id_student
) ON subjects.id_subject = ocenki.id_subject;

  • 1

#3 fedornabilkin
fedornabilkin
  • Модератор
  • 1 183 сообщений
  • Репутация: 204

Отправлено 28 Ноябрь 2013 - 10:47

Ничего не надо заменять, вполне реально два LEFT JOIN использовать.
Не могу ничего сказать по эффективности, но я использую и ничего страшного вроде.
В твоем случае наверно лучше будет выбирать таблицу оценок и к ней уже лепить студентов и предметы.

Например вот так
  SELECT `o`.`ocenka`, `s`.`familiya`, `s`.`imya`, `s`.`otchestvo`, `sub`.`nazvanie_sub`
  FROM `ocenka` o
  LEFT JOIN `students` s ON `o`.`id_student` = `s`.`id_student`
  LEFT JOIN `subjects` sub ON `o`.`id_subject` = `sub`.`id_subject`

  • 0

Надо обсудить предложение. А тут знакосчиталка считает знаки. Про Yii2 написано.




Пользователь месяца
Totti Totti 1-й за Январь
Очков активности: 3 937 6 тем, 87 сообщений, 25 баллов репутации
ТОП самых активных за этот месяц
  • Фотография Megoydagi
    #1

    Megoydagi (24ho.ru)
    Очков активности: 612 5 тем, 53 сообщения, 6 баллов репутации

  • Фотография NataliaAntalia
    #2

    NataliaAntalia (zdorovemedicina.ru)
    Очков активности: 139.5 Вне конкурса за определение пользователя месяца

  • Фотография BLIK
    #3

    BLIK
    Очков активности: 76.5 Вне конкурса за определение пользователя месяца

  • Фотография magnet
    #4

    magnet (rbfxdirect.com)
    Очков активности: 55.5 2 темы, 31 сообщение, 1 балл репутации

  • Фотография Totti
    #5

    Totti
    Очков активности: 42 Вне конкурса за определение пользователя месяца

  • Фотография albedo
    #6

    albedo (online24news.ru)
    Очков активности: 34.5 1 тема, 20 сообщений, 1 балл репутации

  • Фотография TindrumGM
    #7

    TindrumGM (novosti-land.ru)
    Очков активности: 28.5 5 тем, 4 сообщения, 1 балл репутации

  • Фотография MattCutts
    #8

    MattCutts (dmitrylee.ru)
    Очков активности: 22.5 Вне конкурса за определение пользователя месяца

  • Фотография kolver
    #9

    kolver
    Очков активности: 21 2 темы, 8 сообщений, 1 балл репутации

  • Фотография Владислава Рыкова
    #10

    Владислава Рыкова
    Очков активности: 21 0 тем, 7 сообщений, 2 балла репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 30.01.2020
  • Яндекс выдача: 23.02.2020
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru