用户表
uid,username
1  admin附加属性表
uid,profile_name,profile_val
1   qq            12345
1   msn           [email protected]
如何用比较简单的语句得到如下结果
uid,username,qq    ,msn
1   admin    12345  [email protected]

解决方案 »

  1.   

    简单写一下。select a.uid,a.username,(case when b.profile_name = 'qq' then b.profile_val end) as qq,(case when b.profile_name = 'msn' then b.profile_val end) as msn
    from a inner join b using(uid);
      

  2.   

    select u.uid,u.username,f1.profile_val as qq,f2.profile_val as msn
    from (用户表 as u left join 
    (select uid, profile_val 附加属性表 where profile_name='qq') as f1 on u.uid=f1.uid)
    left jion
    (select uid, profile_val 附加属性表 where profile_name='msn') as f2 on u.uid=f2.uid[align=center]====  ====
    [/align]
      

  3.   

    看你的数据量了, 具体你自己在mySQL执行一下,看一下耗时就知道了[align=center]====  ====
    [/align]
      

  4.   

    由于您是新用户,所以特此介绍一下结贴的方法
    如果您问题已经得解决,请您及时结帖给分,以感谢帮助您的朋友。 结帖方法:点击版面右上方或右下方 [管理] ,进入页面后就可以输入密码,分别给分,结帖。 
     或参考:
    http://www.csdn.net/help/over.asp
    http://topic.csdn.net/u/20080110/19/7cb462f1-cac6-4c28-848e-0a879f4fd642.html
    =============================================================================
    问题解决,请及时结贴。  
     正确结贴方法:    
     管理帖子-->给分-->输入密码-->结贴[align=center]====  ====
    [/align]