gpt4 book ai didi

mysql select查询从基于行的数据中获取数据

转载 作者:可可西里 更新时间:2023-11-01 08:46:27 25 4
gpt4 key购买 nike

我有 4 个表:

  • 来源
  • 字段(源字段)
  • 源数据
  • source_data_details(source_data 的子项,包含以行技术保存的记录)

enter image description here

source
id name status
1 web active


field
id source_id name config status
1 1 record_id 101 active
2 1 firstname 101 active
3 1 surname 101 active

source_data
id source_id status
1 1 active
2 1 active

source_data_details
id source_data_id source_field_id value
1 1 1 1avhh2
2 1 2 john
3 1 3 mavrick
4 2 1 87k3jo
5 2 2 peter
6 2 3 lyne

如何查询得到结果

source_data.id           record_id    firstname    surname
1 1avhh2 john mavrick
2 87k3jo peter lyne

最佳答案

您可以使用多个连接或聚合。这是一个使用聚合的示例:

select sdd.source_data_id, 
max(case when f.name = 'record_id' then sdd.value end) as record_id,
max(case when f.name = 'firstname' then sdd.value end) as firstname,
max(case when f.name = 'surname' then sdd.value end) as surname
from source_data_details sdd join
field f
on sdd.field_id = f.id
group by sdd.source_data_id;

请注意,您必须在输出中显式输入您想要的每一列。如果您想要可变列,则需要使用动态 SQL(prepare/execute 语句)。

关于mysql select查询从基于行的数据中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342688/

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