2013-03-03 56 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