A表结构+测试数据如下:m_name,d_id,d_name 
小明,1,吃饭
小明,2,洗碗
小明,3,睡觉
小红,1,吃饭
小红,2,洗碗B表结构+测试数据如下:
who_id,d_id
小明,1
小红,1
小红,2现在要求select * from where **** 能找出如下结果:
who_id,d_id
小明,吃饭
小红,吃饭
小红,洗碗

解决方案 »

  1.   

    select b.who_id,
           a.d_name  
    from tb b ,ta a 
    where b.who_id=a.m_name
    and b.d_id=a.d_id
      

  2.   

    select b.who_id,a.d_name from  a inner join b
    on a.m_name=b.ma_name and a.d_id=b.d_id
      

  3.   

    select who_id,d_name from a right join b
    on a.who_id=b.who_id and a.d_id=b.d_id
      

  4.   

    select who_id,d_name from a right join b
    on a.who_id=b.who_id and a.d_id=b.d_id
      

  5.   

    select who_id,d_id=(select d_name from a where m_name=who_id=t.d_id=d_id) from b t
      

  6.   

    select who_id=m_name,d_name from a right join b
    on a.who_id=b.who_id and a.d_id=b.d_id'又是id,又是name的,搞晕了,呵呵...'
      

  7.   

    用一次内连接就可以了吧:select b.who_id,
           a.d_name  
    from tb b ,ta a 
    where b.who_id = a.m_name
    and b.d_id = a.d_id
      

  8.   


    create table a( m_name varchar(10),d_id int,d_name  varchar(10))
    insert a select '小明',1,'吃饭'
    insert a select '小明',2,'洗碗'
    insert a select '小明',3,'睡觉'
    insert a select '小红',1,'吃饭'
    insert a select '小红',2,'洗碗'create table b(who_id varchar(10),d_id int)
    insert b select '小明',1
    insert b select '小红',1
    insert b select '小红',2select b.who_id,a.d_name from  a inner join b
    on a.m_name=b.who_id and a.d_id=b.d_idwho_id     d_name
    ---------- ----------
    小明         吃饭
    小红         吃饭
    小红         洗碗(3 行受影响)
      

  9.   

    SELECT who_id,(SELECT d_name FROM A WHERE d_id=B.d_id AND m_name=B.who_id) AS d_id
    FROM B
      

  10.   


    create table a( m_name varchar(10),d_id int,d_name  varchar(10))
    insert a select '小明',1,'吃饭'
    insert a select '小明',2,'洗碗'
    insert a select '小明',3,'睡觉'
    insert a select '小红',1,'吃饭'
    insert a select '小红',2,'洗碗'create table b(who_id varchar(10),d_id int)
    insert b select '小明',1
    insert b select '小红',1
    insert b select '小红',2select b.who_id,a.d_name as d_id from  a inner join b
    on a.m_name=b.who_id and a.d_id=b.d_id
    who_id     d_id
    ---------- ----------
    小明         吃饭
    小红         吃饭
    小红         洗碗(3 行受影响)