2016-01-09 23 views
2

我有以下分組在MySQL

item category accounts 
ITEM1 CATEGORY1 ACCOUNT1 
ITEM2 CATEGORY1 ACCOUNT1 
ITEM3 CATEGORY2 ACCOUNT2 
ITEM4 CATEGORY2 ACCOUNT2 
ITEM5 CATEGORY3 ACCOUNT3 
ITEM6 CATEGORY3 ACCOUNT3 

這個數據,想知道有什麼更好的辦法,所以我可以得到它的輸出像

item category accounts 
ITEM1 CATEGORY1 ACCOUNT1 
ITEM2 CATEGORY1 
ITEM3 CATEGORY2 ACCOUNT2 
ITEM4 CATEGORY2 
ITEM5 CATEGORY3 ACCOUNT3 
ITEM6 CATEGORY3 

我一直在使用UNION嘗試:

SELECT 
item, 
category, 
account 

FROM t1 

UNION 

SELECT NULL,NULL,account from t1 

但我得到的結果是

item category accounts 
ITEM1 CATEGORY1 ACCOUNT1 
ITEM2 CATEGORY1 ACCOUNT1 
ITEM3 CATEGORY2 ACCOUNT2 
ITEM4 CATEGORY2 ACCOUNT2 
ITEM5 CATEGORY3 ACCOUNT3 
ITEM6 CATEGORY3 ACCOUNT3 
NULL NULL  ACCOUNT1 
NULL NULL  ACCOUNT2 
NULL NULL  ACCOUNT3 

任何關於如何使它成爲可能的建議?謝謝

回答

0

你可以這樣做:

SELECT @acct := null; 
SELECT item, category, (if(@acct = account, '', @acct := account)) account FROM items; 

但我不會真的建議這樣做,除了作爲一種更方便地查看從mysql CLI工具的結果。 (您可能還需要調整選擇查詢並指定適當的ORDER BY。)