如何编写一个sql查询来选择多行的单个表

时间:2016-12-30 13:44:54

标签: mysql database

我有一个名为Employee的表,其中包含字段ID,键,值。表格如下......

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

我想要输出如下......

1  | a | aa 
2  | b | bb

请告诉我产生这样的输出的查询...

2 个答案:

答案 0 :(得分:0)

您可以使用大小写和聚合来实现:

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`;

P.S。 - 避免在设计中使用(MySQL)保留关键字,例如key等。

参考:

答案 1 :(得分:-3)

如果要选择所有多行,则

SELECT*FROM ROW_NAME;

如果你想特别选择

SELECT NAME,NAME,NAME,FROM ROW_NAME

此处NAME是您想要的选择。