2012-10-13 19 views
-1

我有兩個表:我可以在A表連接B表中插入2個值嗎?

vote('id', 'question_id', 'ip_id') 

ip('id','ip_addr') 

我想要做這樣的事情:

INSERT INTO SELECT `vote`.`question_id`, `ip`.`ip_addr` 
      FROM `vote` 
      LEFT JOIN `ip` 
      ON `vote`.`ip_id` = `ip`.`id` VALUES '2','127.0.0.1' 

上面的代碼不工作,任何想法?

+0

什麼表格你想插入? –

回答

0

你可以插入行使用下列方法之一現有表:

INSERT INTO vote (id, question_id, ip_id) 
VALUES (....) 

OR

INSERT INTO vote (id, question_id, ip_id) 
SELECT id, question_id, ip_id 
FROM 
    <some existing tables, optionally using joins, where clauses etc., to select the data to insert> 

在你的情況,你似乎是試圖插入記錄到IP表以及VOTE表在同一時間,這是不可能的。

您應該首先使用上面的第一個語法在IP表中插入一條記錄,然後使用第二個選項插入VOTE表。

2

INSERT INTO SELECT語法是這樣的:

INSERT INTO Table2 
(Column1, Column3) 
SELECT Column1, Column3 
FROM Table1 

所以您的查詢應該是這樣的:

INSERT INTO <TableName> (`question_id`, `ip_addr`) 
      SELECT `vote`.`question_id`, `ip`.`ip_addr` 
      FROM `vote` 
      LEFT JOIN `ip` 
      ON `vote`.`ip_id` = `ip`.`id` 
相關問題