gpt4 book ai didi

mysql - SQL select with with multiple rows for a ID

转载 作者:行者123 更新时间:2023-11-29 02:16:20 25 4
gpt4 key购买 nike

我有两个表:

表 1:“用户字段”

id  name
1 age
2 birthdate
3 firstname

表 2:'user_data'

user_id user_field_id value
22 1 50
22 2 01.01.1990
22 3 Peter
25 1 33
25 2 05.08.1970
25 3 Steve

现在我想创建一个 sql 语句来显示每个 user_id 的名字和生日

示例行:

22    Peter    01.01.1990
25 Steve 05.08.1970

选择应该是什么样子的?非常感谢!

最佳答案

您需要连接表(如果您不想对值进行硬编码),然后执行聚合:

SELECT  ud.user_id,
MIN(CASE WHEN uf.name = 'firstname' THEN ud.value END) as firstname,
MIN(CASE WHEN uf.name = 'birthday' THEN ud.value END) as birthday
FROM user_data ud
INNER JOIN user_fields uf
ON ud.user_field_id = uf.user_field_id
GROUP BY ud.user_id;

好的,根据您的新要求,一个简单的 JOIN 就可以:

SELECT  ud.user_id,
MIN(CASE WHEN uf.name = 'firstname' THEN ud.value END) as firstname,
MIN(CASE WHEN uf.name = 'birthday' THEN ud.value END) as birthday,
MIN(ac.status) as status
FROM user_data ud
INNER JOIN user_fields uf
ON ud.user_field_id = uf.user_field_id
LEFT JOIN api_calls ac
ON ud.user_id = ac.user_id
GROUP BY ud.user_id;

关于mysql - SQL select with with multiple rows for a ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39123929/

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