Update Multiple-table syntax

Aleksis

Guest
Update Multiple-table syntax

Имеем tab1 c полями fam,name,tel и tab2 c полями fam,name,tel .Нужно обновить полe tel таблицы tab1 данными поля tel таблицы tab2 по условию fam,name таблицы tab1=fam,name таблицы tab2.

Пишу update tabl tab2 set tab1.tel=tab2.tel where tab1.fam=tab2.fam and tab1.name=tab2.name

Не проходит,как правильно синтаксис написать(доки читал)
 

.des.

Поставил пиво кому надо ;-)
Пишу update tabl tab2 set tab1.tel=tab2.tel where tab1.fam=tab2.fam and tab1.name=tab2.name

Не проходит,
Так и и пишет?
ERROR NN: Не проходит; check the manual that corresponds to your MySQL server version for the right syntax to use...


а по вопросу "update tabl tab2 set" запятую не забыли?
 

Aleksis

Guest
да запятая нужна между tab1 и tab2

update tab1,tab2 set tab1.tel=tab2.tel where tab1.fam=tab2.fam and tab1.name=tab2.name

Теперь запрос прошел,но столбец tel таблицы tab1 не обновился(пусто)
 

.des.

Поставил пиво кому надо ;-)
Код:
SELECT  tab1.tel, tab2.tel FROM tab1, tab2 where tab1.fam=tab2.fam and tab1.name=tab2.name
Что выводит?
 

Aleksis

Guest
Запрос успешен,0 строк задействовано,(61 сек)

То есть условия where не проходят,раз нет ничего в поле tel
 

.des.

Поставил пиво кому надо ;-)
Значит по таким условия ни одной из строк tab1 не соответствует ни одной строки из tab2. Проверяйте данные.
А вообще в таких случаях скорее всего желательно использовать суррогатный ключ (некий customer_id).
 

Aleksis

Guest
да осознал я свою ошибку,(customer_id),но теперь надо все же из того что есть.Номера стали обновлятся,но в строках с новыми фамилиями надо чтоб было null,вообщем можно ещё один запрос,но хочу все водном запросе сделать
 
Сверху