SQl Pivot帮助多个表 [英] SQl Pivot help with multiple tables
本文介绍了SQl Pivot帮助多个表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
SQL Pivot帮助: 我有三个表,如下所示: 类表:
SQL Pivot Help: I have three tables as follows: Class Table:
ID Name
1 N1
2 N2
3 N3
标记表:
ID ClassID Flags
1 1 F1
1 1 F2
1 2 F3
1 3 F1
1 3 F3
会话表:
ID ClassID Session
1 1 S1
2 1 S2
3 1 S3
4 2 S2
5 2 S5
6 3 S1
6 3 S2
现在我需要创建一个类似这样的视图:
Now I need to create a view something like this:
类视图:
ID Name Flags Session
1 N1 F1,F2 S1,S2,S3
2 N2 F3 S2,S5
3 N3 F1,F3 S1,S2
推荐答案
最好的方法是在客户端的表示层中创建用逗号分隔的列表.您可以像这样将表连接在一起:
The best approach would be to create the comma separated lists in the presentation layer of the client. You can join the tables together like:
select
class.id
, class.name
, flags.flags
, session.session
from class
left join flags on flags.classid = class.id
left join session on session.classid = class.id
尽管数据库并不是要格式化数据,但是大多数数据库都支持某种生成逗号分隔列表的方式.例如,在MySQL中,您可以使用group_concat
:
Although databases are not meant to format data, most databases support some way of generating comma separated lists. For example, in MySQL, you can use group_concat
:
select
class.id
, class.name
, group_concat(flags.flags separator ',')
, group_concat(session.session separator ',')
from class
left join flags on flags.classid = class.id
left join session on session.classid = class.id
group by class.id, class.name
如果您使用的是其他DMBS,请将其添加到您的问题中.
If you're using another DMBS, please add it to your question.
这篇关于SQl Pivot帮助多个表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文