mysql查詢-橫表豎表相互轉換-與橫標轉豎表關聯查詢
一 豎錶轉橫表
1. 學生表成績表-豎表
2. 查詢資料
select * from student;
3. 想要將資料顯示為橫表, 即如下形式
資料顯示為橫表 sql語句:
select name as '姓名',
max(case subject when '語文' then result else 0 end) '語文',
max(case subject when '數學' then result else 0 end) '數學',
max(case subject when '英語' then result else 0 end) '英語'
from student group by name;
二, 橫表變豎表
1. 建立橫表 - 學生成績表
2. 查詢資料
select * from student1;
3. 將橫表資料轉換為豎表的形式, 即如下形式:
對應的sql語句:
select*from
(
select 姓名 as Name , '語文' as Subject , 語文 as result from student1
union all
select 姓名 as Name , '數學' as Subject , 數學 as result from student1
union all
select 姓名 as Name , '物理' as Subject , 物理 as result from student1
) t
order by name;
三,橫表變豎表的-關聯查詢
查詢出結果的sql:
SELECT cp.person_name,cm.url from cm_person cp INNER JOIN cm_midia cm on cp.id_front_ukid = cm.id
UNION
SELECT cp.person_name,cm.url from cm_person cp INNER JOIN cm_midia cm on cp.id_back_ukid = cm.id
UNION
SELECT cp.person_name,cm.url from cm_person cp INNER JOIN cm_midia cm on cp.id_header_ukid = cm.id;