插入记录从表B表A只,如果他们不缴费表A

问题描述:

我有两个表。表A和表B(MySQL的)插入记录从表B表A只,如果他们不缴费表A

Table-A has id,value,name.. and 
Table-B has id,name,email,address.. 

我想从表中插入“身份证” B中表A“价值”只有当“ID”(表B)不存在表A as'Value”

所以我可以用这个

INSERT INTO `TableA`(`value`, `name`) 
SELECT id,name FROM TableB 
WHERE TableB.id NOT IN TableA.value 

您需要沿线使用代码以下:

WHERE NOT EXISTS (select * from TableA where TableA.value = TableB.id) 
+0

INSERT INTO'TableA'('value','name') WHERE NOT EXISTS(SELECT ID,名称FROM表B WHERE TableB.id =表B .value) – ricardo 2012-07-09 01:52:55

您可以使用此解决方案:

INSERT INTO TableA (value, name) 
SELECT b.id, b.name 
FROM TableB b 
LEFT JOIN TableA a ON b.id = a.value 
WHERE a.id IS NULL 
+0

好吧,让我试试它..谢谢 – ricardo 2012-07-09 02:32:24

+0

我觉得这可能会永远不会结束循环或查询?因为它需要一些时间..(3百万条记录):-) – ricardo 2012-07-09 02:42:44

+0

您可能希望每次“插入”增量金额。你可以在WHERE后面加上LIMIT 100000。另外,'SELECT'本身需要多长时间? – 2012-07-09 02:47:44