举个实例比较清楚,三个表,ID唯一,表示某个客户的信息
table1 有字段 id name psw email signtime (客户信息表)table2 有字段 id logintime ( 录登录时间)  每次登录增加1条记录table3 有字段 id tradekind(交易种类) tradetime (交易时间)现在要建1个视图能够同时调用 table1的所有信息,这个ID的总共登录次数,最后一次登录时间,最后一次交易时间

解决方案 »

  1.   

    --方法一:
    select a.*,last_logintime=(select max(logintime) from table2 where a.id=id),last_tradetime=(select max(tradetime) from table3 where a.id=id) from table1 a--方法二:
    select a.*,b.last_logintime,c.last_tradetime from table1 a
     left join (select id,max(logintime) last_logintime from table2 group by id) b on a.id=b.id
     left join (select id,max(tradetime) last_tradetime from table3 group by id) c on a.id=c.id
      

  2.   

    --方法二:
    select a.*,b.last_logintime,c.last_tradetime from table1 a
     left join (select id,max(logintime) last_logintime from table2 group by id) b on a.id=b.id
     left join (select id,max(tradetime) last_tradetime from table3 group by id) c on a.id=c.id 
    貌似应该使用right join
    而这个结果应该只是交易了的纪录,有登录没交易的情况就没算在内