例如表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.   

    你的意思是给 A 表增加字段 ADDR,然后将 B 表的 ADDR 字段根据 NAME 关联更新到 A 里去是吗?
    这个事没有问题的
      

  2.   

    update a set a.addr=(select addr from b where b.id=a.id);
    觉得用name不可行,更新用主键不是正好吗?
      

  3.   

    这太简单了:
    select A.name,A.id,A.score,B.addr from A,B wher A.name=B.name
      

  4.   

    SQL> with TAB_A as  (
      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> 
      

  5.   

    SQL> with TAB_A as  (
      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> 
      

  6.   


    --楼主自己给的数据都是有问题的,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>