Задавайте вопросы, мы ответим
Вы не зашли.
Вообщем, проблема такова. Есть 2 таблицы: adress и adressmap
мы знаем adress.id, по которому мы смотрим на предмет совпадения с adressmap.adresscode, если совпадает то adressmap.providerid присваивается 325.
Точнее есть список адресов по которому можно ручками узнать adress.id.
Хочется сделать сравнение списка и таблицы adress, откуда потом вычленяется adress.id и сравнивается с adressmap.adresscode и при совпадении providerid присвается энное значение. Не пойму как реализовать, а принцип действия понятен.
Неактивен
Приведите конкретику пожалуйста. А именно - текущую структуру таблиц, тестовые данные, текущую выборку и ту выборку, который хотите в итоге получить.
Неактивен
deadka написал:
Приведите конкретику пожалуйста. А именно - текущую структуру таблиц, тестовые данные, текущую выборку и ту выборку, который хотите в итоге получить.
эмм, извините, я в первый раз на форуме. Может быть не совсем понял.Вроде же точно описал задание.
Неактивен
наброски запроса:
update adressmap
set providerid = "325"
where adress.id = adressmap.adresscode
не понимаю как связать таблицы, через IN не получается.
Неактивен
Приведите запросы на создание таблиц как в http://sqlinfo.ru/forum/viewtopic.php?pid=36260#p36260
и набор тестовых данных в виде insert into.
Далее тот результат, который Вы хотите получить.
Неактивен
таблицы уже есть, нужно внести изменения касательно providerid. Или хотя бы можете предложить пример решения.
две разные таблицы, там есть данные которые совпадают, но под разными именами записаны.
и при совпадении данных, мы providerid присваиваем число
Неактивен
Я понимаю, что таблицы уже есть - хочу увидеть их структуру, для этого и прошу привести сюда. И тестовые данные тоже. После этого возможно смогу предложить вариант решения.
Неактивен
tab adress
1 id int(11)
2 city varchar(255) utf8_unicode_ci
3 districtcode int(11)
4 district text utf8_unicode_ci
5 street varchar(255) utf8_unicode_ci
6 housenumber varchar(11) utf8_unicode_ci
7 buildingnumber varchar(11) utf8_unicode_ci
tab.adress_map
1 addresscode int(11)
2 providerid int(11)
3 controlid int(11)
id и adresscode имеют одинаковое значение, нужно их сравнить, и в случае совпадения в столбец providerid прописать 325.
из phpadmin структура
Неактивен
UPDATE adress_map
SET providerid = '325'
FROM adress pr LEFT JOIN
adress_map ON adress.id=adress_map.adresscode
WHERE providerid = '325' AND
adress_map.adresscode IS NULL
вот, но не работает, а по другому не знаю как написать.
Неактивен
Допустим, в таблице adress есть 5 строк, где id принимает значения
1
2
3
4
5
В таблице adress_map содержатся следующие строки
addresscode providerid controlid
3 0 0
4 0 0
5 0 0
6 0 0
7 0 0
Вам нужен итоговый результат в таблице address_map в виде
addresscode providerid controlid
3 325 0
4 325 0
5 325 0
6 0 0
7 0 0
?
То есть исходим из того, что нужно прописать providerid=325 в тех строках, у которых такой id, который присутствует в таблице adress?
Если так, то можно
Неактивен