2013-03-03 54 views
0

我運行此代碼來獲取用戶的發票號碼清單,地址等SQL使用信息插入

SELECT A.id, A.userid, A.duedate, A.status, B.firstname, B.lastname, B.address1, B.city, B.postcode 
FROM tblinvoices A 
inner join tblclients B 
on A.userid = B.id 
WHERE duedate >= '2013-02-18' 
AND duedate <= '2013-03-03' 
AND A.status = 'Unpaid'; 

但我需要插入一些信息到另一個表。

現在我manualy運行:

INSERT INTO `dbuser`.`tblnotes` (`id`, `userid`, `adminid`, `created`, `modified`, `note`, `sticky`) VALUES (NULL, '4585', '1', '2013-03-03 07:05:00', '', 'invoice by mail', '1'); 

這怎麼可能全自動的嗎? 因此,第一條命令列出的所有「userid」都會添加一條說明,通過郵件發送發票。

回答

0

使用INSERT INTO...SELECT聲明,前

INSERT INTO dbuser.tblnotes (id, userid, adminid, created, modified, note, sticky) 
SELECT NULL, A.userid, A.userid, '2013-03-03 07:05:00', '', 'invoice by mail', '1' 
FROM tblinvoices A 
     inner join tblclients B 
      on A.userid = B.id 
WHERE duedate BETWEEN '2013-02-18' AND '2013-03-03' 
     AND A.status = 'Unpaid'; 

注意:您必須對齊列INSERT order by子句中的select語句的值。

+0

對不起,對齊數值意味着什麼?對於英語來說並不是最好的。 – KjetilP 2013-03-03 06:42:44

+0

我的意思是不交換值,例如,'INSERT INTO tableName(col1,col2,col3)SELECT col1,col2,co3 FROM table2' – 2013-03-03 06:50:39