Mysql复杂查询

标签 mysql stored-procedures

有人可以帮我解决这个问题吗?

表结构如下:

id |Attribute | value 
-------------------
 1 |name      | user1
 2 | id       |    100
 3 |name      | user2
 4 | id       | 101
 5 |name      | user1
 6 | id       | 103

我想要这样的输出:

name | id 
------------
user1 | 100
user2 | 102
user3 | 103

最佳答案

假设 idname 记录始终交错:

SELECT  mn.value, mi.value
FROM    mytable mn
JOIN    mytable mi
ON      mi.id = 
        (
        SELECT  id
        FROM    mytable mii
        WHERE   mii.attribute = 'id'
                AND mii.id > mn.id
        ORDER BY
                mii.id
        LIMIT 1
        )
WHERE   mn.attribute = 'name'

我什至不敢问谁的主意是设计这样的 table 。

关于Mysql复杂查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4154811/

相关文章:

php - 数字数组作为存储过程(mysql)的参数,用于选择()中的位置

sql - 传递包含多个 ID 的单个参数

php - 表格 html/CSS 输出错误 : unexpected T_STRING

mysql - MySQL 中何时使用单引号、双引号和反引号

php - 如何在行和列反转时显示数据库中的数据

MySQL 行为不正常

c# - 非常冗长的存储过程状态

c# - 使用 EF 和 LINQ 按用户对事务进行分组

mysql - sql从多个表中删除具有重复列值的行

mysql - select 语句返回一部分结果