Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Объединение таблиц MySQL

14K
03 мая 2008 года
makis
29 / / 16.01.2007
Здравствуйте.
У меня такая задача: нужно подобрать ключевые слова для сайта. Около 30 рубрик. В каждой рубрике много статей. Для рубрик нужно по 10-15 слов. Обрабатываю рубрики по очереди. Парсю статью на отдельные слова и вставляю их в таблицу. Если какое-то слово уже содержится в таблице (т.е. было вставлено ранее), то счётчик его вхождения увеличивается на единицу. Каждая статья парсится в отдельную таблицу. Все они имеют одинаковую структуру:
id | слово | рубрика | кол-во вхождений

Таких таблиц может быть от 10 до 300. Хотел поинтересоваться как можно с помощью запросов MySQL обработать все таблицы таким образом, чтобы все слова из них попали в одну уникальную. Но, если слово из первой таблицы содержится во второй, нужно, чтобы счётчик для этого слова увеличивался в уникальной таблице на единицу и это слово не добавлялось по-новой.

Покажу на примере.
Таблица 1
id | слово | рубрика | кол-во вхождений
1 | лопата | 100 | 3
2 | грузовик | 100 | 6
3 | бомба | 100 | 1

Таблица 2
id | слово | рубрика | кол-во вхождений
1 | бумажка | 100 | 10
2 | грузовик | 100 | 1
3 | бомба | 100 | 3
4 | веник | 100 | 4

Таблица 3
id | слово | рубрика | кол-во вхождений
1 | лопата | 100 | 3
2 | грузовик | 100 | 7
3 | бомба | 100 | 4
4 | бумажка | 100 | 10
5 | веник | 100 | 4

Вот такую таблицу (Таблица 3) мне нужно получить на выходе. Подскажите пожалуйста как это можно сделать. Делаю проверкой присутствия каждого слова в таблицах. Если слово есть, увеличиваю счётчик, если нет, просто добавляю новым в итоговую таблицу. Но это происходит очень медленно. Думаю, что средставми объединения таблиц это можно сделать гораздо быстрее, но не знаю как.
Спасибо.
337
03 мая 2008 года
shine
719 / / 09.06.2006
Могу посоветовать покопать в сторону 'MyISAM merge tables'. Вкратце, идея состоит в том, что на основе множества таблиц с одинаковой структурой создается одна таблица включающая все данные из множества. Там правда есть какие-то тонкости с INSERT, но подробностея я не помню. Потом с помощью нехитрого запроса с группировкой по полю 'слово' сможешь получить то, что тебе нужно.
14K
03 мая 2008 года
makis
29 / / 16.01.2007
2shine
Спасибо! Порою. :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог