SELECT User_Info_m.UserName,
      If(User_Info_m.HasPhoto<>0,User_Photo.Photo,If(User_Info_m.Sex='男','Photo_Boy.Gif','Photo_Girl.Gif')) 
FROM User_Info_m LEFT JOIN User_Photo ON User_Info_m.UserName = User_Photo.UserName

解决方案 »

  1.   

    呵呵,
    通过提交FAQ,以及自己是别FAQ的主要解答人FAQ被审核 2002-12-16  22:57:06 
    FAQ提交内容被审核通过,主要解答人增加信誉分5分,可用分10分  
      

  2.   

    注意: a=user_info_m(username,sex),b=user_photo,我用的是oracle语法
    select b.bphoto
    from zz1 a,z22 b
    where a.aname=b.bname and a.aphoto='1'
    and b.bpost_date = (select max(bpost_date) from z22 where bname=a.aname)
    union
    select aphoto
    from zz1 
    where aphoto<>'1';
      

  3.   

    MySQL在查询方面功能并不是太完善的
    建议在 User_Photo 中只保存用户最新的一份图片难道你的 User_Info_m.UserName 中有重复数据吗?
    呵呵,如是那你要用 DISTINCT 了SELECT  DISTINCT User_Info_m.UserName,
          If(  User_Info_m.HasPhoto<>0,
               User_Photo.Photo,
               If(  User_Info_m.Sex='男', 
                    'Photo_Boy.Gif',
                    'Photo_Girl.Gif'
                  )
             ) 
    FROM User_Info_m LEFT JOIN User_Photo 
      ON User_Info_m.UserName = User_Photo.UserName
    GROUP BY User_Info_m.UserName如果在 User_Photo 表中同一个用户有多条信息,
    呵呵,
    那麻烦了,
    你必须先处理 User_Photo ,将其中最新的数据放入一个临时表中,
    再用上面的SQL来处理数据
      

  4.   

    好久不来csdn, shuixin13(犬犬(心帆))都成“猩猩”了
    呵呵~~
      

  5.   

    呵呵,
    欢迎 dejoy(燕青) 呀 ,
    好长时间没见大侠你了
    :》
      

  6.   

    DISTINCT 出来的不一定是最新的,可以用Order by取第一笔