Tag: 数据透视表

mysqlselectdynamic行值作为列名,另一列作为值

我有一个遗留的用户信息表(这仍然在积极使用),我不能改变的结构 – id name value —————————— 0 timezone Europe/London 0 language en 0 country 45 0 something x 1 timezone Europe/Paris 1 language fr 1 country 46 时区/语言/国家等只是名称的例子,它们可以是可变的/除了在该列的行上的唯一性之外没有有限的列表 我需要一个MySQL兼容的SQL查询,将返回 – id timezone language country something ————————————————— 0 Europe/London en 45 x 1 Europe/Paris fr 46 我已经通过各种各样的解决scheme,看看围绕黑客入侵MySQL的数据透视表function,以及类似的,但没有一个似乎匹配这种情况下从同一个表的列中的唯一行值使用variables列名别名。 虽然我几乎没有睡觉,所以他们都开始变得模糊,提前道歉。 最近我可以find将使用预先准备的语句https://stackoverflow.com/a/986088/830171这将首先从名称列中获取所有可能的/唯一的值,并build立使用CASE WHEN ,和/或多个子查询的查询, SELECT或JOIN在相同的表查询。 我能想到的替代方法是获取该用户标识的所有行,并在应用程序本身的for循环中处理它们,或尝试将名称限制为有限的数量并使用子SELECT / JOIN 。 […]

MySQL – 行到列

我试图searchpost,但我只findSQL Server / Access的解决scheme。 我需要在MySQL(5.X)的解决scheme。 我有一个表(称为历史),有3列:hostid,itemname,itemvalue。 如果我做一个select( select * from history ),它会返回 +——–+———-+———–+ | hostid | itemname | itemvalue | +——–+———-+———–+ | 1 | A | 10 | +——–+———-+———–+ | 1 | B | 3 | +——–+———-+———–+ | 2 | A | 9 | +——–+———-+———–+ | 2 | c | 40 | +——–+———-+———–+ 我如何查询数据库返回类似的东西 +——–+——+—–+—–+ […]

MySQL将行数转换为dynamic数量的列

比方说,我有三个不同的MySQL表: 表products : id | name 1 Product A 2 Product B 表partners : id | name 1 Partner A 2 Partner B 表sales : partners_id | products_id 1 2 2 5 1 5 1 3 1 4 1 5 2 2 2 4 2 3 1 1 我想获得与合作伙伴在行和产品作为列的表。 到目前为止,我能够得到这样的输出: name | name | COUNT( […]