2016-12-30 63 views
-1

我有一個名爲Employee帶有字段ID,鍵,值表。該表如下...如何寫一個SQL查詢來選擇單個表的多個行

ID | Key | Value 
1 | Fname | a 
1 | Lname | aa 
2 | Fname | b 
2 | Lname | bb 

我想下面的輸出...

1 | a | aa 
2 | b | bb 

請告訴我查詢產生這樣的輸出...

+1

先試一下;問題太寬 –

+2

btw,'key'是一個MySQL保留字;想你想知道事先https://dev.mysql.com/doc/refman/5.5/en/keywords.html –

+1

@弗雷德-II-另一個數據透視表的問題,聯繫適當的重複它 – Shadow

回答

0

您可以使用case and aggregate to achieve that:

select `ID`, 
    max(case when `Key` = 'Fname' then `Value` end) fname, 
    max(case when `Key` = 'Lname' then `Value` end) lname 
from Employee 
group by `ID`; 

PS - 避免在您的設計中使用(MySQL)保留的關鍵字,如key等。

參考:

+0

謝謝我只是改變了名爲鍵的列和查詢工作正常..謝謝guyz幫助... – Dravis

-3

如果您想選擇所有多行則

SELECT*FROM ROW_NAME; 

如果你想選擇特別然後

SELECT NAME,NAME,NAME,FROM ROW_NAME 

此處NAME是用於選擇你想要的。

+1

這不是什麼問題。 –

+0

另外,在真實世界中,除非實際使用表中的所有行,否則幾乎不應該使用'Select *',因爲這是性能問題,導致您沒有使用數據。 – user2366842

相關問題