2010-08-23 78 views
0

我试图做一个INSERT SELECT条件,但smthg似乎是错误的。对于错误的语法,我得到了1064错误。插入选择条件

下面是该查询:

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 2010-08-23 08:04:20

+0

是的,你不能写第二个where子句那样 – 2010-08-23 08:06:00

+0

好吧! PHP会做到这一点,只是试图做到这一切的MySQL的:) – Kyobul 2010-08-23 08:07:34

0

该synt对于INSERT INTO,ax通常是

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

您需要简化查询并思考您正在尝试执行的操作。

0

我的问题不好。在这种情况下,它不是插入,而是需要更新查询