gpt4 book ai didi

SQL如何将行映射到列?

转载 作者:行者123 更新时间:2023-11-29 07:14:36 25 4
gpt4 key购买 nike

数据库结构,具有两个 1-n 连接。

User table
==========
user_id

Attribute table
===============
attribute_id
user_id
attribute_name

Attribute_Value table
=====================
attribute_value_id
attribute_id
attribute_value

有没有一种方法可以接收以下行样式的数据:

user_id | firstname | lastname
---------------------------
1 | Simon | Smith
2 | John | Doe

name 是属性表中的第一个 attribute_name 条目,lastname 是第二个。

最佳答案

因为您知道要查找的值的名称,所以连接就可以解决问题。

select
u.user_id,
a1.attribute_value as firstname,
a2.attribute_value as lastname
from User u
inner join Attribute a1
on u.user_id = a1.user_id
and a1.attribute_name = 'name'
inner join Attribute_Value v1
on a1.attribute_id = v1.attribute_id
inner join Attribute a2
on u.user_id = a2.user_id
and a2.attribute_name = 'lastname'
inner join Attribute_Value v2
on a2.attribute_id = v2.attribute_id

左右(没有运行这个)。如果不是每个人都有名字或姓氏,请使用左连接。

关于SQL如何将行映射到列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2255002/

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