我正在尝试根据表A
中的行更新表B
中的行。表A
如下所示:
a_id | NAME | VALUE |
--------------------------
1 | n1 | NULL |
2 | n2 | NULL |
和表格B
如下所示:
b_id | VALUE |
----------------------
1 | var1 |
2 | var2 |
3 | var3 |
如何将表格A
更新为:
a_id | NAME | VALUE |
--------------------------
1 | n1 | var1 |
2 | n2 | var1 |
3 | n1 | var2 |
4 | n1 | var3 |
5 | n2 | var2 |
6 | n2 | var3 |
答案 0 :(得分:1)
简单的方法是创建一个与A结构相同的新表AA 并做
Insert into AA Select A._id,a.NAME,b.Value From A, B
然后删除A并将AA重命名为A或清空A并从AA中选择它
不能只是一个更新语句,因为记录也需要插入。
这被称为笛卡尔积,通常是一个错误。请理解你最终会得到B中A *行数的行数.2 * 3不是问题,2,000,000 * 3,000,000 ......