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

Ваш аккаунт

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

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

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

Слияние двух таблиц mysql

8.3K
04 января 2005 года
Sintez
8 / / 20.12.2004
Подскажите как сделать Слияние двух таблиц mysql
по такому принципу:
Table_1 состоит из (id | name)
Table_2 состоит тоже из (id | name)

Надо скопировать строки из Table_2 в Table_1, но только с проверкой, на то что этих строк в table_1 не существует, т.е name нигде такой не встречается
4
04 января 2005 года
mike
3.7K / / 01.10.2002
Примерно так:

INSERT INTO table1 SELECT * FROM table2 WHERE id!=17
8.3K
05 января 2005 года
Sintez
8 / / 20.12.2004
Цитата:
Originally posted by mike
Примерно так:

INSERT INTO table1 SELECT * FROM table2 WHERE id!=17



Не так не получется. Мне надо проверку name, но притом не ручную. Может это както на php получится?

4
05 января 2005 года
mike
3.7K / / 01.10.2002
Цитата:
Originally posted by Sintez


Не так не получется. Мне надо проверку name, но притом не ручную. Может это както на php получится?



Тогда делаешь NAME UNIQUE

и потом:

INSERT IGNORE INTO table1 SELECT * FROM table2

правда, это будет работать только если поле NAME уникально. Если MySql поновее, то можно в селекте указывать NOT IN (SELECT name FROM table1)

8.3K
05 января 2005 года
Sintez
8 / / 20.12.2004
Цитата:
Originally posted by mike


Тогда делаешь NAME UNIQUE

и потом:

INSERT IGNORE INTO table1 SELECT * FROM table2

правда, это будет работать только если поле NAME уникально. Если MySql поновее, то можно в селекте указывать NOT IN (SELECT name FROM table1)


Можешь обьяснить по точнее, а то я новичок в этом деле. Как будет примерно выглядить запрос?

3.6K
08 января 2005 года
kuljok
64 / / 16.03.2004
Цитата:
Originally posted by Sintez


Не так не получется. Мне надо проверку name, но притом не ручную. Может это както на php получится?



Мне кажется это и средствами MySQL получится. Вот так например:

 
Код:
CREATE TEMPORARY TABLE tmp_tbl
SELECT table2. *
FROM table2
LEFT JOIN table1 ON table2.name = table1.name
WHERE table1.name IS NULL;
INSERT INTO table1 SELECT * FROM tmp_tbl;
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог