表A:
ID  NAME
1    广州
2    深圳
3    佛山表B:
ID  ADDRESS A_ID
1   天河北路  1
2   天河南路  1
3   深南大道  2
4   南海南一路 3
如何得到如下的查询:所有地区
广州
--天河北路
--天河南路
深圳
--深南大道
佛山
--南海南一路即是按表A的地区分类呢?

解决方案 »

  1.   

    Select [Name],Max([Address]) From 表B Left Outer Join 表A On 表B.A_ID=表A.ID Group By [Name]
      

  2.   

    Select [Name],[Address] From A Inner Join B On B.A_ID=A.ID 
      

  3.   

    这个好些,如果用Inner Join 有时可能数据不完整,具体看内连接跟左连接的区别
      

  4.   

    楼主什么开发的
    怎么说也好几年了怎么sql这么差
      

  5.   

    MARK 楼上的!也许别人专攻其他语言
      

  6.   

    联合查询  inner  join  和 left join 看着办把,
      

  7.   

    只显示这样?
    Select [Name],[Address] From @B b Left Join @A a On b.A_ID=a.ID 
      

  8.   

    该不会是这样?不是就当练手- -
    --> Test Data: @A
    declare @A table ([ID] int,[NAME] varchar(4))
    insert into @A
    select 1,'广州' union all
    select 2,'深圳' union all
    select 3,'佛山'
    --> Test Data: @B
    declare @B table ([ID] int,[ADDRESS] varchar(10),[A_ID] int)
    insert into @B
    select 1,'天河北路',1 union all
    select 2,'天河南路',1 union all
    select 3,'深南大道',2 union all
    select 4,'南海南一路',3--select * from @A
    --select * from @B
    --Code
    select [NAME] as 所有地区 from
    (
    Select ltrim(id) as ID,[Name] from @A
    union all
    select ltrim(a.id)+ltrim(A_ID),'--'+[Address] From @B b,@A a where b.A_ID=a.ID
    ) t
    order by id--Drop--Result
    /*
    所有地区
    ------------
    广州
    --天河北路
    --天河南路
    深圳
    --深南大道
    佛山
    --南海南一路*/
      

  9.   

    Select [Name],[Address] From @B b Left Join @A a On b.A_ID=a.ID