Связать города из разных таблиц- SQL

D
На сайте с 28.06.2008
Offline
976
421

Есть две таблицы разных продуктов в которых есть города.

Например -

tablevalenki

tableovoshi

Названия городов прописаны в поле - name

Я создал в каждой таблице еще по одному полю city-id куда хочу прописать ID города из другой таблицы.

Например если в tablevalenki - Саратов имеет ID = 15, то в таблицу tableovoshi в поле cityidvalenki пишем 15

и наоборот, если в tableovoshi - Саратов имеет ID = 28, то в таблицу tabvalenki в поле cityidovoshiпишем 28

Можно ли это сделать без скриптов чисто запросами к базе?

edogs software
На сайте с 15.12.2005
Offline
714
#1

Типа того

update tablevalenki set cityid=(select cit from tcity where tablevalenki.cityname=tcity.nam)

если tcity это таблица, где cit это ИД города и nam имя города

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход.
D
На сайте с 28.06.2008
Offline
976
#2

То что нужно, спс!!!

D
На сайте с 28.06.2008
Offline
976
#3

Что-то ошибку получаю

update tablevalenki set cityid = (
select t1.id
from
tableovoshi AS t1
INNER JOIN
tablevalenki AS t2
WHERE t1.name = t2.name)

Таблица указана дважды, как в качестве цели для "ОБНОВЛЕНИЯ", так и в качестве отдельного источника данных

В
На сайте с 04.07.2017
Offline
23
#4

Попробуйте примерно так:


UPDATE tablevalenki
INNER JOIN tableovoshi ON tableovoshi.name = tablevalenki.name
SET tablevalenki.cityid = tableovoshi.cityid
D
На сайте с 28.06.2008
Offline
976
#5

Вяземский, спасибо, запрос отработал как нужно!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий