SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 28.02.2018 19:25:11

holodec11
Участник
Зарегистрирован: 28.02.2018
Сообщений: 2

помощь с UPDATE запросом

Добрый день.
Столкнулся вот с такой проблемой и, к сожалению, найти решение в интернете не удалось. Думал несколько часов как можно это сделать, но так и не придумал (пока только учусь).

Дано три таблицы:
1.Студент
2.Спортивная_группа
3.Тренер

Есть 2 тренера (например, 'Юрий Сёмин' и 'Валерий Газаев'). Используя запрос UPDATE нужно перевести всех студентов Юрия Сёмина к  Валерию Газаеву БЕЗ использования id студентов и тренеров. Предполагается, что имена тренеров уникальны в нашей базе данных. Ясно, что нужно придумать вариант как это с делать с именами, но что-то не приходит в голову.

P.S видел в других запросах, что вы рекомендуете использовать sql fiddle, но скопировать оттуда с подсветкой не получается.
Все буквы черные(логично, в принципе), но видел в других постах текст с разными цветами. Буду признателен, если откроете секретbig_smile.

CREATE TABLE students(
id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL,
class VARCHAR(10) NULL DEFAULT NULL,
coach_id INT,
CONSTRAINT FOREIGN KEY (coach_id) REFERENCES coaches (id)   
);

CREATE TABLE coaches(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);

INSERT INTO coaches VALUES (NULL, 'Юрий Сёмин');
INSERT INTO coaches VALUES (NULL, 'Валерий Газаев');

INSERT INTO students VALUES (NULL, 'Денис', '11a', (SELECT id FROM coaches WHERE name = 'Юрий Сёмин'));
INSERT INTO students VALUES (NULL, 'Андрей', '11b', (SELECT id FROM coaches WHERE name = 'Юрий Сёмин'));
INSERT INTO students VALUES (NULL, 'Сергей', '11с', (SELECT id FROM coaches WHERE name = 'Юрий Сёмин'));

Неактивен

 

#2 28.02.2018 19:33:16

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5829

Re: помощь с UPDATE запросом

Так?

update students set coach_id = (SELECT id FROM coaches WHERE name = 'Валерий Газаев') where coach_id = (SELECT id FROM coaches WHERE name = 'Юрий Сёмин');


P.S. под областю ввода текста сообщения есть кнопка Syntax

Неактивен

 

#3 28.02.2018 22:16:29

holodec11
Участник
Зарегистрирован: 28.02.2018
Сообщений: 2

Re: помощь с UPDATE запросом

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

P.S И за Syntax спасибо

Отредактированно holodec11 (28.02.2018 22:17:21)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson