gpt4 book ai didi

mysql - 为同一 ID 的多行选择不同的值

转载 作者:可可西里 更新时间:2023-11-01 06:58:59 24 4
gpt4 key购买 nike

我有一个看起来像这样的表:

ID | FIELD_NAME   | VALUE
23 | sign_up | yes
23 | first_name | Fred
23 | street | Barber Lane
24 | sign_up | no
24 | first_name | Steve
24 | street | Camaro St.
25 | sign_up | yes
25 | first_name | Larry
25 | street | Huckleberry Ave

我想运行一个查询,该查询将选择唯一 ID 和值作为命名列,因此它看起来像这样:

ID   |   SIGN_UP   | FIRST_NAME  |  STREET           |
23 | yes | Fred | Barber Lane |
24 | no | Steve | Camaro St. |
25 | yes | Larry | Huckleberry Ave. |

任何帮助将不胜感激!!

最佳答案

您可以使用这个简单的解决方案:

SELECT DISTINCT
a.id,
b.value AS SIGN_UP,
c.value AS FIRST_NAME,
d.value AS STREET
FROM tbl a
LEFT JOIN tbl b ON a.id = b.id AND b.field_name = 'sign_up'
LEFT JOIN tbl c ON a.id = c.id AND c.field_name = 'first_name'
LEFT JOIN tbl d ON a.id = d.id AND d.field_name = 'street'

为了安全起见,我加入了 LEFT JOIN,因为我不知道 id 是否可以有 missing 字段,在这种情况下它们会出现作为派生列中的 NULL


SQL-Fiddle Demo

关于mysql - 为同一 ID 的多行选择不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11419145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com