例如表A : name,id,score 。 表B: name,id,addr。id位主键,欲在表A中增加新的列addr
问题1:如果按id增加新的列addr,语句是什么?
问题2:如果按name增加新的列addr(name会有重名),能添加成功吗?
例如:表A: 王辉 100 90
表B: 王辉 100 山东
王辉 101 湖南
能不能变成表:王辉 100 90 山东
王辉 100 90 湖南
问题1:如果按id增加新的列addr,语句是什么?
问题2:如果按name增加新的列addr(name会有重名),能添加成功吗?
例如:表A: 王辉 100 90
表B: 王辉 100 山东
王辉 101 湖南
能不能变成表:王辉 100 90 山东
王辉 100 90 湖南
这个事没有问题的
觉得用name不可行,更新用主键不是正好吗?
select A.name,A.id,A.score,B.addr from A,B wher A.name=B.name
2 select '王辉' name, 100 id,90 score from dual),
3 TAB_B as (
4 select '王辉' name, 100 id,'山东' addr from dual)
5 select TAB_A.NAME,TAB_A.ID,TAB_A.SCORE,TAB_B.ADDR FROM TAB_A,TAB_B WHERE TAB_A.ID=TAB_B.ID;
NAME ID SCORE ADDR
---- ---------- ---------- ----
王辉 100 90 山东
SQL>
2 select '王辉' name, 100 id,90 score from dual),
3 TAB_B as (
4 select '王辉' name, 100 id,'山东' addr from dual
5 union all
6 select '王辉' name, 100 id,'湖南' addr from dual)
7 select TAB_A.NAME,TAB_A.ID,TAB_A.SCORE,TAB_B.ADDR FROM TAB_A,TAB_B WHERE TAB_A.ID=TAB_B.ID;
NAME ID SCORE ADDR
---- ---------- ---------- ----
王辉 100 90 山东
王辉 100 90 湖南
SQL>
--楼主自己给的数据都是有问题的,ID是主键,还有重复的ID?
--名字有重复的可以理解,但是ID不应该有重复的,So:
SQL> with TAB_A as (
2 select '王辉' name, 100 id,90 score from dual
3 union all
4 select '王辉' name, 200 id,90 score from dual),
5 TAB_B as (
6 select '王辉' name, 100 id,'山东' addr from dual
7 union all
8 select '王辉' name, 200 id,'湖南' addr from dual)
9 select TAB_A.NAME,TAB_A.ID,TAB_A.SCORE,TAB_B.ADDR FROM TAB_A,TAB_B WHERE TAB_A.ID=TAB_B.ID;
NAME ID SCORE ADDR
---- ---------- ---------- ----
王辉 100 90 山东
王辉 200 90 湖南
SQL>