mar_a
Новичок
Update - значения в таблице1 из сводных таблицы2
Необходимо обновить значение поля таблицы 1 (поле явл. индексным) вставить туда
значение индекса из таблицы2 (Id) если
в таблице2 значение поля xname совпадает со значением поля name таблицы1.
Структура упрощенно такая :
Таблица1
---------------------------------------------------------------------
id | id_tab2 | name | Другие поля
___________________________________________
1 |________ | Bulls | ----
2 |________ | Beer | --- --
3 |________ | Beath | ------
4 |________ | Bulls | ----
5 |________ | Beath | ------
6 |________ | Beath | ------
7 |________ | Bulls | ----
Таблица 2
---------------------------------------------------------------------
id | pass | xname | -- ----
___________________________________________
5 | xxxxxx | Bulls | ----
6 | xxxxzz | Bulls | ----
7 | yyyyyy | Beer | --- -----
8 | yyyycc | Beer | --- --
9 | xxxxyyy| Beath | ------
10 | xxxxzz | Bulls | ----
Как я делал :
1) Запустил запрос на выявление из табл.2 всех ID с уникальными xname
и вставил их во временную таблицу.
Получилось:
---------------------
id_ | name
_____________
5 | Bulls |
7 | Beer |
9 | Beath |
2) Из этой таблицы пытаюсь вставить значения поля id_ в таблицу 1
Т.е. выполняю запрос вида:
Ну и естественно ошибка.
( Ошибка не в плане что MySQL руганулся - а то что данные не обновились!!)
Вопрос 1) Как можно осуществить шаг №2 на предмет обновления
Вопрос 2) А как лучше , возможно ли обойтись без создания временной таблицы сразу одним запросом.
PS Ман по UPDATE читал - и разумеется там приводиться примеры обновления данного
поля таблицы при условиях что критерии отбора также берутся из данной таблицы.
А меня интересует обновление именно с 2-х связанных.
Необходимо обновить значение поля таблицы 1 (поле явл. индексным) вставить туда
значение индекса из таблицы2 (Id) если
в таблице2 значение поля xname совпадает со значением поля name таблицы1.
Структура упрощенно такая :
Таблица1
---------------------------------------------------------------------
id | id_tab2 | name | Другие поля
___________________________________________
1 |________ | Bulls | ----
2 |________ | Beer | --- --
3 |________ | Beath | ------
4 |________ | Bulls | ----
5 |________ | Beath | ------
6 |________ | Beath | ------
7 |________ | Bulls | ----
Таблица 2
---------------------------------------------------------------------
id | pass | xname | -- ----
___________________________________________
5 | xxxxxx | Bulls | ----
6 | xxxxzz | Bulls | ----
7 | yyyyyy | Beer | --- -----
8 | yyyycc | Beer | --- --
9 | xxxxyyy| Beath | ------
10 | xxxxzz | Bulls | ----
Как я делал :
1) Запустил запрос на выявление из табл.2 всех ID с уникальными xname
и вставил их во временную таблицу.
Получилось:
---------------------
id_ | name
_____________
5 | Bulls |
7 | Beer |
9 | Beath |
2) Из этой таблицы пытаюсь вставить значения поля id_ в таблицу 1
Т.е. выполняю запрос вида:
Код:
Update tabl1 as x , temp as y
SET x.id=y.id_
where x.name=y.name
( Ошибка не в плане что MySQL руганулся - а то что данные не обновились!!)
Вопрос 1) Как можно осуществить шаг №2 на предмет обновления
Вопрос 2) А как лучше , возможно ли обойтись без создания временной таблицы сразу одним запросом.
PS Ман по UPDATE читал - и разумеется там приводиться примеры обновления данного
поля таблицы при условиях что критерии отбора также берутся из данной таблицы.
А меня интересует обновление именно с 2-х связанных.