2010-08-23 4 views
0

Я пытаюсь сделать INSERT SELECT с условием, но smthg кажется неправильным. Я получаю ошибку 1064 за неправильный синтаксис.INSERT SELECT с условием

Вот запрос:

INSERT INTO `db1`.`table`.`field` (

SELECT a.`field1` , a.`field2` 
FROM `db2`.`table1` a, `db2`.`table2` b 
WHERE a.`field1` = b.`field1` 
AND b.`field2` = 'value' 
) 

WHERE a.`field1` = `db1`.`table1`.`field1` 

Спасибо заранее за любые предложения

ответ

1

Синтаксис для вставки выберите это:

INSERT california_authors (au_id, au_lname, au_fname) 
SELECT au_id, au_lname, au_fname 
FROM authors 
WHERE State = 'CA' 

так в вас случае, как

INSERT INTO `db1`.`table` (.... field list ...) 
    select 
    ... col for select ..... 
    from table 
    where ... where condition .... 
+0

не работает для меня; по-прежнему возникает проблема со вторым предложением where (для вставки); неправильный синтаксис – Kyobul

+0

да, вы не можете писать второй, где такая статья –

+0

ладно! php будет делать это в любом случае, просто пытался сделать все это mysql :) – Kyobul

0

Синтез Топор для INSERT INTO обычно

INSERT INTO myTable (field1,field2,...,fieldN) 
SELECT field1,field2,etc FROM myTable WHERE condition 

Вы должны упростить свои запросы и продумать, что вы пытаетесь сделать.

0

Мой вопрос был плохим. В этом случае это не Вставка, а запрос обновления, который необходим