首页 新闻 赞助 找找看

求一sql语句

0
悬赏园豆:50 [已关闭问题]

表1:UserTagGroup 用户标签组表 
UserTagGroupID    UserTagGroupName    UserTagGroupFieldName    RoleID 
    1                设计师类型            DesignerType            1 
    2                设计师擅长风格        DesignerStyle          1 
    3                装修公司类型          CompanyType            2 
    4                装修公司风格          CompanyStyle            2 

表2:UserTag 用户标签表 
UserTagID        UserTagGroupID      UserTagValue 
    1                1                    家装 
    2                1                    公装 
    3                2                    欧式 
    4                2                    中式 

表3:User  用户表 
UserID            UserName            RoleID 
    1              liujia                1 

表4:UserTagDetail 用户标签详细表 
UserTagDetailID    UserID              UserTagID 
    1                1                    1 
    2                1                    3 
    3                1                    4 
所需结果: 
UserName  RoleID      DesignerType        DesignerStyle 
  liujia    1            公装                欧式,中式

静如夜的主页 静如夜 | 初学一级 | 园豆:150
提问于:2010-02-03 17:13
< >
分享
其他回答(4)
0

这个结果有问题??
应该是:

UserName  RoleID      DesignerType        DesignerStyle

liujia    1            家装               欧式,中式

一个语句有点麻烦,可以考虑用表变量来做

邀月 | 园豆:25475 (高人七级) | 2010-02-03 18:09
0

mark..

Jared.Nie | 园豆:1940 (小虾三级) | 2010-02-04 09:33
0

确实,一句话的话很难求出最终结果。

webaspx | 园豆:1973 (小虾三级) | 2010-02-04 14:59
0

只要有,分隔,就需要拼接结果或者采用自定义函数的形式。

查尔斯 | 园豆:3832 (老鸟四级) | 2010-02-04 23:29
0

可能要用变量吧 不是很会



select ta.UserName,ta.RoleID,
(select tc.UserTagValue from UserTag tc where tc.UserTagID = tb.UserTagID) as DesignerType,
(select te.UserTagValue from UserTag te where te.UserTagGroupID = td.UserTagGroupID) as DesignerStyle,

tb.UserTagID,
td.UserTagGroupID
from User ta
left join UserTagDetail tb on tb.UserID = ta.UserID
left join UserTagGroup td on td.RoleID = ta.RoleID and td.UserTagGroupFieldName = 'DesignerStyle'

刘政道 | 园豆:215 (菜鸟二级) | 2010-02-11 10:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册