t1:
name age
a    20
b    30
c    40
...t2:
name login_time
a    15:00
b    16:10
a    19:30
a    22:55
...现select t1.name,age,login_time from t1,t2 where t1.name=t2.name
得:
name age login_time
a    20  15:00
a    20  19:30
a    20  22:55但我只想要其中一条就够了(即只要有a的记录即可达到目的),请问select如何写呢?谢谢

解决方案 »

  1.   

    declare @t1 table(name varchar(10),age int)
    declare @t2 table(name varchar(10),login_time varchar(10))
    insert @t1 
    select 'a',20 union all
    select 'b',30 union all
    select 'c',40
    insert @t2
    select 'a','15:00' union all
    select 'b','16:10' union all
    select 'a','19:30' union all
    select 'a','22:55'select a.name,a.age,b.login_time from @t1 a 
    left join (select name,min(login_time) as login_time from @t2 group by name) b
    on a.name = b.name
      

  2.   

    如果只显示@t1和@t2中都有的name,请使用inner join:
    select a.name,a.age,b.login_time from @t1 a 
    INNER join (select name,min(login_time) as login_time from @t2 group by name) b
    on a.name = b.name
      

  3.   

    --楼上可能没看清题意!借用楼上兄弟代码
    declare @t1 table(name varchar(10),age int)
    declare @t2 table(name varchar(10),login_time varchar(10))
    insert @t1 
    select 'a',20 union all
    select 'b',30 union all
    select 'c',40
    insert @t2
    select 'a','15:00' union all
    select 'b','16:10' union all
    select 'a','19:30' union all
    select 'a','22:55'select A.name,A.age,B.login_time from @t1 A,@t2 B where A.name=B.name
    and A.name='a'  --加上一个过滤条件就可以了