Mysql之使用自連線的方法實現行轉列

2021-10-03 05:31:16 字數 1923 閱讀 6760

圖一

1、首先我們得準備兩張

2、執行下面的sql語句,進行對每乙個人的數量進行彙總

select one_usertable.username, sum(killtable.kills_number) as "數量" 

from one_usertable join killtable on

one_usertable.id =killtable.user_id group by one_usertable.username

得出如下的結果,那麼現在是行的形式了,接下來,我們進行轉列的形式

3、執行下面的sql語句

select * from (

select sum(killtable.kills_number) as "陳小燕"

from one_usertable join killtable on

one_usertable.id =killtable.user_id and one_usertable.username="陳小燕"

) a cross join(

select sum(killtable.kills_number) as "陳小蝶"

from one_usertable join killtable on

one_usertable.id =killtable.user_id and one_usertable.username="陳小蝶"

) b cross join(

select sum(killtable.kills_number) as "陳小水"

from one_usertable join killtable on

one_usertable.id =killtable.user_id and one_usertable.username="陳小水") c

那麼我們要顯示的行轉列就會實現出來了

還有第二種實現方法,我們接下來實現case方法來實現

select sum(case when username="陳小燕" then kills_number end) as '陳小燕',

sum(case when username="陳小蝶" then kills_number end) as '陳小蝶',

sum(case when username="陳小水" then kills_number end) as '陳小水'

from one_usertable join killtable on one_usertable.id=killtable.user_id

得出來的結果仍然是

但是我們用這兩種行轉列是存在乙個缺點的,比如說,我們連線join次數會隨著使用者的次數增加而增加,影響效率不高,而且還會帶來給我們寫sql的複雜性,雖然在開發中我們用這種的技巧並不是很多,但是我們每天學多一點就是進步一點。

mysql內連線查詢之自連線

連線查詢 當查詢資料時,通過連線操作查詢出存放在多個表中的不同資料,當兩個或者多個表中存在相同意義的字段時,便可以通過這些欄位對不同的表進行連線查詢。自連線 如果在乙個連線查詢中,涉及的兩個表都是同乙個表,這種查詢稱為自連線查詢。自連線是一種特殊的內連線,它是指相互連線的表在物理上為同一張表,但可以...

MySQL系列之自連線用法簡介

mysql系列之自連線簡介,mysql自連線操作,沒有特定的關鍵字,所謂自連線指的是同乙個表不同例項之間的join操作 引用的圖示 特徵 自連線操作一般應用與有層級關係的表,最經典的就是員工 經理例子 ok,下面舉例說明 建立部門dept表 table structure for table dep...

C 連線使用MySQL的方法

c 連線使用mysql,供大家參考,具體內容如下 定義mysqlcon類 class mysqlcon 初始化操作 mysqlcon mysqlcon if mysql init mysql nullptr if mysql options mysql,mysql set charset name,...