Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сравнение таблиц и запись / 6 сообщений из 6, страница 1 из 1
26.06.2015, 17:49:50
    #38994078
tiraelius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение таблиц и запись
Добрый день.
имеются таблицы

oc_product_tab_content
product_id int(11)
language_id int(11)
tab_id int(11)
content text utf8_general_ci

oc_product_description
product_id int(11)
language_id int(11)
name varchar(255) utf8_general_ci
meta_title varchar(255) utf8_bin
page_h1 varchar(255) utf8_bin
description text utf8_general_ci
meta_description varchar(255) utf8_general_ci
meta_keyword varchar(255) utf8_general_ci
short_description

oc_product_tab_default
tab_id int(11)
language_id int(11)
content

Ситуация такая что в таблице oc_product_tab_content нет некоторых product_id из таблицы oc_product_description. Нужно сравнить 2 таблицы oc_product_tab_content и oc_product_description и при ненахождении product_id его нужно добавить, а поле content взять из oc_product_tab_default. tab_id = 5
...
Рейтинг: 0 / 0
29.06.2015, 11:27:50
    #38994770
tiraelius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение таблиц и запись
up
...
Рейтинг: 0 / 0
29.06.2015, 12:24:04
    #38994826
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение таблиц и запись
1 ШАГ
записи, которых нет в oc_product_tab_content
Код: sql
1.
2.
3.
SELECT t1.*
FROM oc_product t1 LEFT JOIN oc_product_tab_content as t2 ON t1.product_id=t2.product_id
WHERE t2.name IS NULL


2 ШАГ
прикрутим поля из третьей таблицы
Код: sql
1.
2.
3.
SELECT t1.product_id, t3.language_id, t3.tab_id, t3.content
FROM oc_product t1 JOIN oc_product_tab_default as t3 LEFT JOIN oc_product_tab_content as t2 ON t1.product_id=t2.product_id
WHERE t2.name IS NULL AND  t3.tab_id = 5


3 ШАГ
вставляем итог
Код: sql
1.
2.
3.
4.
INSERT INTO oc_product_tab_content
SELECT t1.product_id, t3.language_id, t3.tab_id, t3.content
FROM oc_product t1 JOIN oc_product_tab_default as t3 LEFT JOIN oc_product_tab_content as t2 ON t1.product_id=t2.product_id
WHERE t2.name IS NULL AND  t3.tab_id = 5

вникните,проверьте и вперед...
...
Рейтинг: 0 / 0
29.06.2015, 13:16:26
    #38994900
tiraelius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение таблиц и запись
По отдельности так то да. Но нужно в одном запросе сделать.
...
Рейтинг: 0 / 0
29.06.2015, 13:25:50
    #38994917
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение таблиц и запись
tiraeliusПо отдельности так то да. Но нужно в одном запросе сделать."Так то" это и есть один запрос
...
Рейтинг: 0 / 0
29.06.2015, 14:08:13
    #38994998
tiraelius
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение таблиц и запись
Да всё круто, работает!
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сравнение таблиц и запись / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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