gpt4 book ai didi

mysql - 选择列作为行并对结果进行分组

转载 作者:行者123 更新时间:2023-11-29 23:26:25 24 4
gpt4 key购买 nike

我在查询时遇到了困难我有一个如下所示的客户数据库

客户

  • 身份证
  • 创建时间

字段

  • 姓名
  • 唯一ID

字段内容

  • FieldUniqID
  • 值(value)
  • 客户 ID

最后我想制作一个看起来像这样的表格

  • Customer.ID 作为 CustomerID
  • Field.Name 作为名字
  • Field.Name 作为姓氏
  • 字段名称作为电子邮件
  • Field.Name 作为电话
  • 客户.按创建时创建

希望你能帮我找出如何做

正如你所见,我使用 php 编写了它:

$this->db->query('SET SESSION group_concat_max_len=10000000');
$q = $this->db->select("GROUP_CONCAT(fieldsContent.Content SEPARATOR '|*|') AS Content,
GROUP_CONCAT(fieldsContent.FieldID SEPARATOR '|*|') AS FieldID,
customers.Created,
customers.ID",false)
->from('customers')
->join('fieldsContent','fieldsContent.TypeID = customers.ID','left outer')
->where(array('fieldsContent.TypeName' => 'customers',
'customers.ID' => $id))
->group_by('fieldsContent.TypeID')
->order_by('customers.Created','DESC')
->get();
foreach($q->result() as $d){
$field = explode('|*|',$d->FieldID);
$content = explode('|*|',$d->Content);
foreach($field as $k => $FieldID){
$dd[$FieldID] = $content[$k];
}
}

但我只需要sql而不使用php

最佳答案

也许像下面这样?

SET SESSION group_concat_max_len=10000000;
CREATE VIEW <view_name> AS
(
SELECT group_concat(fieldscontent.content separator '|*|') AS content,
group_concat(fieldscontent.fieldid separator '|*|') AS fieldid,
customers.created
FROM customers
LEFT JOIN fieldscontent
ON fieldscontent.typeid = customers.id
GROUP BY fieldscontent.typeid
ORDER BY customers.created DESC
)

然后你就可以过滤 View 了!

关于mysql - 选择列作为行并对结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26919544/

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