有两个表
id    name   cid    和  cid  cname
 1    jack    1          1    老师
 2    tom     2          2    学生
 3    rose   null        3    打饭的
 4    jerry  null如何写SQL语句取出这样的表id    name  cname
 1    jack   老师
 2    tom    学生
 3    rose   null
 4    jerry  null
其中cid是外键,上面的问题也就是取出表1中所有数据但是cid字段用表2的cname表示。
初学请指教

解决方案 »

  1.   

    select a.*,b.cname from a left join b on a.cid=b.cid
      

  2.   

    select a.*,b.cname
    from a
    left join b
    on a.cid=b.cid
      

  3.   

    select a.id , a.name , b.cname from tb1 a left join tb2 b on a.cid = b.cid
      

  4.   

    两个表重新发下吧
    表1:
    id   name   cid  
     1   jack    1 
     2   tom     2 
     3   rose   null 
     4   jerry  null表2:
    cid cname
     1   老师
     2   学生
     3  打饭的
      

  5.   

    select *
    from ta a left join tb b on a.cid=b.cid
      

  6.   

    select a.id , a.name , b.cname from tb1 a left join tb2 b on a.cid = b.cid
      

  7.   

    create table tb1(id int,name varchar(10),cid  int)
    create table tb2(cid int,cname varchar(10))
    insert into tb1 values(1 ,'jack'  ,1 )
    insert into tb1 values(2 ,'tom'   ,2 )
    insert into tb1 values(3 ,'rose'  ,null) 
    insert into tb1 values(4 ,'jerry' ,null)
    insert into tb2 values(1 ,'老师')
    insert into tb2 values(2 ,'学生')
    insert into tb2 values(3 ,'打饭的')select a.id , a.name , b.cname from tb1 a left join tb2 b on a.cid = b.ciddrop table tb1 , tb2/*
    id          name       cname      
    ----------- ---------- ---------- 
    1           jack       老师
    2           tom        学生
    3           rose       NULL
    4           jerry      NULL(所影响的行数为 4 行)
    */