mysql 纵表转横表 需要用join不能直接where连接

select t.student_id, t4.name, t5.name, ifnull(t6.name,"")
from student_info t
left join student_type t1 on t.student_id=t1.student_id and t1.level=0 left join student_type_info t4 on t1.type_id=t4.id
left join student_type t2 on t.student_id=t2.student_id and t2.level=1 left join student_type_info t5 on t2.type_id=t5.id
left join student_type t3 on t.student_id=t3.student_id and t3.level=2 left join student_type_info t6 on t3.type_id=t6.id
order by t.student_id;

时间: 2024-10-19 15:39:55

mysql 纵表转横表 需要用join不能直接where连接的相关文章

sql_纵表变横表

method certificate value     getUserId 123 getUserid     startTime 123 22     endTime 123 33               如表所示,现在有一个需求,要算getUserId的执行时间,给一个思路,先查询出method=getUserID,和certificate,作为一个结果集,再查出来method=startTime的结果集,然后重新 select from这三个结果集r1,r2,r3, where R1

SQL Server之纵表与横表互转

1,纵表转横表 纵表结构 Table_A: 转换后的结构: 纵表转横表的SQL示例: SELECT  Name ,        SUM(CASE WHEN Course = N'语文' THEN Grade                 ELSE 0            END) AS Chinese ,        SUM(CASE WHEN Course = N'数学' THEN Grade                 ELSE 0            END) AS Math

纵表与横表互转实例(转)

1.纵表转横表: 纵表结构:Table1 转换后的横表结构: Sql示例代码: 1 2 3 4 5 6 7 8 9 10 11 select username, sum(case Course when '语文' then Grade else 0 end) as 语文, sum(case Course when '数学' then Grade else 0 end) as 数学, sum(case Course when '英语' then Grade else 0 end) as 英语 fr

sql 语句纵表变横表

现把转换方法列举如下: 1.纵表转横表: 纵表结构 TableA Name Course Grade 张三 语文 75 张三 数学 80 张三 英语 90 李四 语文 95 李四 数学 55 横表结构 TableB Name 语文 数学 英语 张三 75 80 90 李四 95 55 0 方法一: select Name, sum(case Course when ‘语文‘ then Grade else 0 end) as 语文, sum(case Course when ‘数学‘ then

数据库之横表转纵表、纵表转横表

/*横表变纵表或纵表变横表 成绩表如下 Name Course Grade 张三 语文 95 张三 数学 90 张三 英语 89 李四 语文 92 李四 数学 88 李四 英语 97变成 姓名 语文 数学 英语 张三 95 90 89 李四 92 88 97 */ --纵表转横表 create table biao ( PName varchar(10), PCourse varchar (10), PGrade int ) go insert into biao values('张三','语文

纵表与横表互转实例

1.纵表转横表: 纵表结构:Table1 转换后的横表结构: Sql示例代码: ? 1 2 3 4 5 6 7 8 9 10 11 select username, sum(case Course when '语文' then Grade else 0 end) as 语文, sum(case Course when '数学' then Grade else 0 end) as 数学, sum(case Course when '英语' then Grade else 0 end) as 英语

SQL纵表与横表互转

1.纵表转横表: 纵表结构:Table1 转换后的横表结构: Sql示例代码: select username, sum(case Course when '语文' then Grade else 0 end) as 语文, sum(case Course when '数学' then Grade else 0 end) as 数学, sum(case Course when '英语' then Grade else 0 end) as 英语 from Table1 group by usern

Hadoop MapReduce纵表转横表

输入数据如下:以\t分隔 0-3岁育儿百科 书 23 0-5v液位传感器 5 0-5轴承 2 0-6个月奶粉 23 0-6个月奶粉c2c报告 23 0-6个月奶粉在线购物排名 23 0-6个月奶粉市场前景 23 0-6个月配方奶粉 23 0.001g电子天平 5 0.01t化铝炉 2 0.01吨熔铝合金炉 2 0.03吨化镁炉 25 0.03吨电磁炉 11 其中左侧是搜索词,右侧是类别,可看成是数据库中的纵表,现需要将输入转成横表,即 类名\t语句1\t语句2...,这样的格式. MapRedu

sql实现纵表变横表

网上所有的纵横表转换都是千篇一律的,参考价值都不大,而且只适合那种数据量固定的学生成绩表的横纵转化,但是当真正遇到大数据量的批量转换的时候是行不通的,下面介绍一种相对灵活的大量数据的横纵表转换: 表结构: 如上图所示,其中index_id中以0结尾的表示的是服务名,以1结尾的表示设备rac名称,2结尾的表示的是设备状态. 下面我们需要将一组0,1,2结尾的分别展示成以服务名,设备rac名称,设备状态为表头的一行数据,多组0,1,2结尾的展示成多行数据. Sql执行如下: select index