有3个表 是一对多关系 即一个国家有多个城市,一个城市有多个学校
表A
      国家cd  主键
      国家name    (假设有多个相同的国家name)
      国家气候    表B
      国家cd   
      城市cd   主键
      城市name表c
      国家cd  
      城市cd  主键
      学校cd  主键
      学校name现在要取得国家cd,城市cd,学校cd,国家name,城市name,学校name,
      条件是国家name ='ABC'and 国家气候 ='hot',取得的数据不能重复
请问该如何实现,谢谢。

解决方案 »

  1.   


    select a.国家cd, b.城市cd, c.学校cd, 
           a.国家name, b.城市name, c.学校name
      from a, b, c
     where a.国家cd=b.国家cd
       and b.城市cd=c.城市cd
       and a.国家气候='hot'
       and a.国家name='ABC'
    这样数据就唯一了啊?
    b.城市cd, c.学校cd 合起来主键啊。
      

  2.   

    select * from (select * from a where 国家name ='ABC'and 国家气候 ='hot') aa join b
    on aa.国家cd=b.国家cd join c on b.城市cd=c.城市cd and aa.学校cd=c.学校cd