select CITY_PTN_CD, COUNTRY_NAME_ENG,CITY_NAME_ENG ,CITY_CD  
from (select * from LOOK.M_CITY a,LOOK.M_COUNTRY b where a.COUNTRY_CD=b.COUNTRY_CD  )
where CITY_PTN_CD in ('FZK','CMN')
写的SQL语句如上,没有问题,可以执行。
但是我在查询语句中加入COUNTRY_CD就出错了,
select CITY_PTN_CD,COUNTRY_CD, COUNTRY_NAME_ENG,CITY_NAME_ENG ,CITY_CD  
from (select * from LOOK.M_CITY a,LOOK.M_COUNTRY b where a.COUNTRY_CD=b.COUNTRY_CD  )
where CITY_PTN_CD in ('FZK','CMN')怎样写才能让COUNTRY_CD这一栏也显示出来呢?
不知道在Google大叔里输入什么来查询,只好请教各位高手了,
顺便出来透透气,老是潜水也不是办法。
在线等待……

解决方案 »

  1.   

    LOOK.M_CITY 和LOOK.M_COUNTRY 
    有COUNTRY_CD这个字段吗?
      

  2.   

    select CITY_PTN_CD,a.COUNTRY_CD, COUNTRY_NAME_ENG,CITY_NAME_ENG ,CITY_CD  
    from (select * from LOOK.M_CITY a,LOOK.M_COUNTRY b where a.COUNTRY_CD=b.COUNTRY_CD  ) 
    where CITY_PTN_CD in ('FZK','CMN')
    少了一标识符,找的时候不知道要选那一个
    所以需增加一标识
      

  3.   

    有这个字段,我就是按照这个字段相等连新表的啊!如贴子的代码:
    where a.COUNTRY_CD=b.COUNTRY_CD  
      

  4.   

    二楼的建议我也试了,还是有错误 :00904
    我还尝试过用:
    select c.CITY_PTN_CD,c.COUNTRY_CD, c.COUNTRY_NAME_ENG,c.CITY_NAME_ENG ,c.CITY_CD  
    from (select * from LOOK.M_CITY a,LOOK.M_COUNTRY b where a.COUNTRY_CD=b.COUNTRY_CD c  ) 
    where CITY_PTN_CD in ('FZK','CMN')
    结果也不对。刚学sql 一个月不到,
    菜鸟级别的问题,哪位高手给我解释一下!
    郁闷中……
      

  5.   

    你两个表都有这个字段啊,所以没法区分啊,要把其中一个起别名,或者在里层的SQL不用*,把要的字段写出来
      

  6.   

    谢谢楼上两位的建议,已经搞定了:
    select *
    from 
        (select a.CITY_PTN_CD,b.COUNTRY_CD, b.COUNTRY_NAME_ENG,a.CITY_NAME_ENG ,a.CITY_CD 
         from LOOK.M_CITY a,LOOK.M_COUNTRY b 
         where a.COUNTRY_CD=b.COUNTRY_CD  )
    where CITY_PTN_CD in ('FZK','CMN')
    我把上面的的*换成a.CITY_PTN_CD,b.COUNTRY_CD, b.COUNTRY_NAME_ENG,a.CITY_NAME_ENG ,a.CITY_CD 
    又不对了?这是为什么呢?
    是不是我给表取得别名只能在括号里面有效呢?
      

  7.   

    两个表中都有字段COUNTRY_CD, oracle是没有这么聪明去按照你想要得那样去取。本人建议: 给每个表起个别名,然后写字段的时候就用 "表别名.字段名" 这种形式去写。这样对SQL解析的时候也会有好处.