2013-04-05 86 views
2

我有一个table_a,我想用其他两个表中的数据更新。用于将数据从2个表更新为另一个表的SQL查询

table_a 
+----+---------+------------+-------+ 
| id | user | date | valid | 
+----+---------+------------+-------+ 
| 10 | Bob  |   |  | 
| 11 | Joe  |   |  | 
| 12 | Joe  |   |  | 
| 13 | Pete |   |  | 
| 14 | Bob  |   |  | 
+----+---------+------------+-------+ 

日来自表-B,其中table_b.rel_id = table_a.id

table_b 
+----+----------+----------+ 
| id | rel_id | date | 
+----+----------+----------+ 
| 30 | 8  | 10/10/11 | 
| 31 | 9  | 10/10/11 | 
| 32 | 10  | 10/10/11 | 
| 33 | 11  | 10/10/11 | 
| 34 | 12  | 10/10/11 | 
| 35 | 13  | 10/10/11 | 
| 36 | 14  | 10/10/11 |   
+----+----------+----------+ 

和有效来自table_c其中table_c.rel_id = table_a.id

table_c 
+----+----------+----------+ 
| id | rel_id | valid | 
+----+----------+----------+ 
| 40 | 10  | yes | 
| 41 | 11  | no  | 
| 42 | 12  | yes | 
| 43 | 13  | no  | 
| 44 | 14  | yes | 
| 45 | 15  | no  | 
| 46 | 16  | yes |   
+----+----------+----------+ 

岂今用SQL查询完成?

回答

4

您可以简单地使用INNER JOIN加入表格。

UPDATE table_a a 
     INNER JOIN table_b b 
      ON a.id = b.rel_id 
     INNER JOIN table_c c 
      ON a.id = c.rel_id 
SET  a.date = b.date, 
     a.valid = c.valid 
+2

+1 http://www.sqlfiddle.com/#!2/2dce1/1 – mellamokb 2013-04-05 14:39:51

+2

@mellamokb哎呀,谢谢,我也忙着做小提琴和固定错字':)' – 2013-04-05 14:41:26

+0

你们真是太棒了,很快就回答了,并且完美地呈现了SQLFiddle。我甚至无法写得那么快。非常感谢! – lunacafu 2013-04-05 15:43:41

相关问题