2015-05-15 6 views
0

В MySQLрезультатов вставки запроса на одной таблицы в другую таблицу

У меня есть таблица с именем задача, и я хочу, чтобы выбрать один из двух столбцов (KeyId и proyect). Эти пары могут повториться, поэтому я просто хочу выбрать одну из каждой комбинации.

Затем я хочу вставить результат в столбцы пользователя и proyect второй таблицы.

Может ли кто-нибудь предоставить синтаксис для этого?

+0

'INSERT INTO table (name, of, columns) VALUES (SELECT name, of, columns) FROM otherTable)' –

ответ

2

Я не совсем уверен, что вы имеете в виду один из каждого, но я предполагаю, что вы хотите что-то вроде:

INSERT 
    INTO table2 (keyid,proyect) 
SELECT DISTINCT keyid, proyect 
    FROM table1 

Или

INSERT 
    INTO table2 (keyid,proyect) 
    SELECT keyid, proyect 
    FROM table1 
GROUP BY keyid, proyect 

Лично я предпочитаю DISTINCT в этом случае, так как вы сформулировали вопрос. Я стараюсь использовать GROUP BY только при необходимости или при попытке концептуально создавать группы.

Это очень легко найти в Интернете; INSERT ... SELECT Syntax

+0

Или, возможно, 'group by' вместо отдельных? –

+0

Да .. если вам нравится – Arth

+0

Еще вы заслуживаете +1 Я был готов опубликовать http://www.sqlfiddle.com/#!9/189de/1 –

1

Вы не указали, как вы будете фильтровать исходные данные. Вам нужно будет добавить предложение WHERE в конце SELECT, чтобы ограничить данные.

INSERT INTO SecondTable (`keyid`, `proyect`) 
SELECT `keyid`, `proyect` FROM `tasks` LIMIT 1 
1

Это называется INSERT SELECT.

INSERT INTO table2 (user, proyect) SELECT keyid, proyect FROM tasks LIMIT 1 

Убедитесь, что вы перечислить столбцы в порядке на том же порядке, в INSERT и SELECT. LIMIT 1 просто вернет одну запись. Вы можете добавить WHERE на SELECT или удалить/изменить лимит в соответствии с вашими потребностями.

Смежные вопросы