gpt4 book ai didi

php - 将行转换为列

转载 作者:行者123 更新时间:2023-11-30 23:03:56 25 4
gpt4 key购买 nike

我试图以一种我从未做过的方式从两个表中得出一个结果集,但我在弄清楚如何做甚至在这些论坛中搜索什么时遇到了一些麻烦.考虑以下假设的表格数据:

Table1
----------------------------------
ID | Name
----------------------------------
1 | aa
2 | bb
3 | cc
4 | dd
5 | ee


Table2
----------------------------------
ID | Table1_ID | Value
----------------------------------
1 | 1 | good
2 | 2 | Dumb
3 | 3 | Fat
4 | 4 | Wet
5 | 5 | High
6 | 1 | Thin
7 | 2 | Tall
8 | 3 | Goofy
9 | 4 | Rich
10 | 5 | Funny

我正在寻找一个查询或方法,使我能够得到以下结果集:代码:

aa      |    bb     |    cc       |    dd      |    ee
---------------------------------------------------------------
good | Dumb | Fat | Wet | High
Thin | Tall | Goofy | Rich | Funny

基本上,我希望能够从 Table1 中获取姓名列表,将它们转换为列标题,然后将 Table2 的所有值放入各自的列中,并能够对任何列进行排序。这可能吗?

最佳答案

当然这可以用SQL来完成。但这很棘手。由于数据写在问题中,您可以按t2.id 以5个为一组进行分组。之后查询只是条件聚合。

select max(case when t2.table1_Id = 1 then value end) as aa,
max(case when t2.table1_Id = 2 then value end) as bb,
max(case when t2.table1_Id = 3 then value end) as cc,
max(case when t2.table1_Id = 4 then value end) as dd,
max(case when t2.table1_Id = 5 then value end) as ee
from table2 t2
group by cast(t2.id - 1 / 5 as int);

让值通过它们的 id 隐式关联似乎是一个非常非常糟糕的数据库设计。应该有某种实体 ID 将它们结合起来。

关于php - 将行转换为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22687210/

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