查询在MySQL中加入同一个表

时间:2015-09-23 16:52:39

标签: mysql sql

我的表格如下:

Key1    key2    Value      Key          Online
a       1       "AMAZON"   "STORE"       True
a       1       10         "AMOUNT"     True
a       1       10:00:00   "HOUR"       False
a       2       "NIKE"     "STORE"      False
a       2       5          "AMOUNT"     False

如果我想提出一个查询,它会返回给定的key1 + key2,键“STORE”的值+键“AMOUNT”的值我该怎么办?

我希望在这种情况下得到以下结果:

key1   key2       store     amount
a      1          "amazon"  10
a      2          "nike"    5

2 个答案:

答案 0 :(得分:0)

如果你想得到你在结果表中显示的内容,你只需要这样做:

SELECT key1, key2, 
    (SELECT LOWER(value) FROM table WHERE key = 'STORE') AS store, 
    (SELECT value FROM table WHERE key = 'AMOUNT')) AS amount
FROM table
GROUP BY key1, key2;

答案 1 :(得分:0)

实现所需结果的一种方法是使用条件聚合:

select 
  key1, 
  key2, 
  max(case when `key`='STORE'  then `value` end) store,
  max(case when `key`='AMOUNT' then `value` end) amount
from table1
group by key1, key2;

Sample SQL Fiddle

此外,key是一个保留字,需要包含在后面的标记中。