我想得到三个字段:表A的user、表B的city_name,还有两表共有的city_id字段。表A的字段city_id的值对应于表B的city_id字段。条件是当表A中的city_id值存在于表B中时,结果集中的city_name字段填上表B的city_name。
不存在时,结果集的city_name留空。我用select a.user,b.city_name,city_id from a,b where a.city_id IN(b.city_id)得不到我想要的结果。当表A中的city_id值不存在于表B中时,该条记录被SQL语句略过了,没为我选出来!而我想要把它选出来,但是city_name自动填空!高手请帮帮忙!

解决方案 »

  1.   

    select a.user,b.city_name,a.city_id from a,b where a.city_id =b.city_id
      

  2.   

    应该是Left Joinselect a.user,b.city_name,a.city_id from a Left Join b on a.city_id =b.city_id
      

  3.   

    我用outer join解决了:
    在informix中:
    select a.user,b.city_name,a.city_id from a, outer b where a.city_id =b.city_id
    在Oracle中
    select a.user,b.city_name,a.city_id from a, b where a.city_id =b.city_id(+)
    在MS SQL中我不知怎么解决,留待后人去想。谢谢用公筷的高手的提示。也谢谢雅克医生,虽然你根本没看完帖就急着回贴了。