2012-07-09 43 views
0

我有兩個表。表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 

回答

0

您需要沿線使用代碼以下:

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

0

您可以使用此解決方案:

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

相關問題