Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите с запросом / 10 сообщений из 10, страница 1 из 1
09.10.2014, 14:24:28
    #38771755
mmm3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
есть таблица

CREATE TABLE IF NOT EXISTS `test_sopost` (
`id` int(8) NOT NULL DEFAULT '0',
`id_l` int(8) NOT NULL,
`id_brand` int(8) NOT NULL,
`id_line` int(8) NOT NULL,
`name` varchar(255) NOT NULL,
`city_id` int(8) NOT NULL,
`postal_code` varchar(12) NOT NULL,
`district` varchar(255) NOT NULL,
`street_address` varchar(255) NOT NULL,
`address_additional` varchar(255) NOT NULL,
`superstore` varchar(255) NOT NULL,
`id_tc` int(11) NOT NULL,
`id_shop` int(11) NOT NULL,
`data_new` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`data_end` datetime NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

нужно вытащить уникальные записи в отдельную таблицу name1 примерно таким запросом
SELECT *
FROM `shop`
WHERE superstore = ''
GROUP BY name, city_id

и в поле id_shop записать те id которые будут сгенерированны в таблице name1
...
Рейтинг: 0 / 0
09.10.2014, 15:24:16
    #38771871
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
mmm3нужно вытащить уникальные записи в отдельную таблицу name1 примерно таким запросом
SELECT *
FROM `shop`
WHERE superstore = ''
GROUP BY name, city_id

Создание таблицы лучше сделайте руками. Надёжнее.
Потом INSERT INTO в неё данные, добытые Вашим запросом (хотя лучше distinct без группировки).
Ну а потом UPDATE двух таблиц.
...
Рейтинг: 0 / 0
09.10.2014, 15:38:41
    #38771896
mmm3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Akina, так Update как раз и сложность возникла у меня
...
Рейтинг: 0 / 0
09.10.2014, 15:48:14
    #38771928
Станислав Клевцов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
mmm3Akina, так Update как раз и сложность возникла у меня

update таблиц:

http://dev.mysql.com/doc/refman/5.6/en/update.html
...
Рейтинг: 0 / 0
09.10.2014, 16:25:13
    #38772010
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
mmm3Update как раз и сложность возникла у меня
ТО есть CREATE TABLE ... и INSERT ... SELECT ... проблем не вызвали... результат покажите?
...
Рейтинг: 0 / 0
09.10.2014, 16:49:17
    #38772053
mmm3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Akina,

insert into new
SELECT *
FROM `shop`
WHERE superstore = ''
GROUP BY name, city_id

это я вставил в новую таблицу

далее добавил 1 поле в нем сделал автоинскремент в 1 поле получилось 300 00 id по порядку.
теперь как мне в исходной таблице где 1 000 000 записей проставить эти 30 000 индексов в поле id_shop?
...
Рейтинг: 0 / 0
09.10.2014, 16:53:55
    #38772063
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Код: sql
1.
2.
3.
4.
UPDATE (обе таблицы)
SET (поле одной таблицы = поле второй таблицы)
WHERE (поля группировки одной таблицы = соотв. полям другой таблицы)
AND (условия отбора из запроса заполнения таблицы)
...
Рейтинг: 0 / 0
09.10.2014, 17:27:34
    #38772131
mmm3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Akina,

Я написал следующее, комп завис, снял задачу

UPDATE test_sopost, new_shops
SET test_sopost.id_shop = new_shops.id
WHERE test_sopost.name = new_shops.name
AND test_sopost.street_address = new_shops.street_address

Где я не правильно написал?

вот вторая таблица с 30 000 записями
CREATE TABLE IF NOT EXISTS `new_shops` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_old` int(8) NOT NULL DEFAULT '0',
`id_l` int(8) NOT NULL,
`id_brand` int(8) NOT NULL,
`id_line` int(8) NOT NULL,
`name` varchar(255) NOT NULL,
`city_id` int(8) NOT NULL,
`postal_code` varchar(12) NOT NULL,
`district` varchar(255) NOT NULL,
`street_address` varchar(255) NOT NULL,
`address_additional` varchar(255) NOT NULL,
`superstore` varchar(255) NOT NULL,
`id_tc` int(11) NOT NULL,
`data_new` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`data_end` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=30000 ;
...
Рейтинг: 0 / 0
09.10.2014, 21:15:55
    #38772357
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Думаю, Вы его положили файлсортом - поля связывания не индексированы же? Наличие индекса по паре полей (name, street_address) или хотя бы по одному из них в обеих таблицах изрядно облегчит серверу работу... я уж не говорю о том, что в свежесозданной таблице эта пара вообще должна быть уникальна.
...
Рейтинг: 0 / 0
10.10.2014, 11:52:20
    #38772905
mmm3
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите с запросом
Akina,
Спасибо все сработало
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / помогите с запросом / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]