mysql - 如何将两个选择结果合并为列

标签 mysql sql

我想将两个选择语句结果组合为列结构而不是行。 但我没有得到我的结果。 请告诉我如何在 mysql 中得到这种类型的结果。

我的代码:

SELECT concat(ClassName,'/',Sub1) as PI 
from timetable  
where P1='AKS' and day='Mon' 

union all 
select concat(ClassName,'/',Sub2) as PII 
from timetable  
where P2='AKS' and day='Mon';

及其在工作台中的输出

enter image description here

在此输出中,所有联合的结果都在 PI 列中,但我希望 PI,PII 作为列而不是在行中。

请告诉我怎么做

我的 table : enter image description here

最佳答案

无意冒犯,但这是不理解关系数据库概念的典型案例。它不像 Excel 或类似的东西,您只需将某些内容插入另一列即可。

数据“PI”和“PII”之间似乎没有任何联系,因此将其“并排”是没有意义的。我也想知道,为什么你想要这样。我建议你这样做:

SELECT 'PI' AS where_the_data_is_coming_from, concat(ClassName,'/',Sub1) as P_columns
from timetable  
where P1='AKS' and day='Mon' 

union all 

select 'PII', concat(ClassName,'/',Sub2) 
from timetable  
where P2='AKS' and day='Mon';

包含一个字符串,该字符串将在结果中告诉您数据是否属于“PI”或“PII”。然后使用那里的数据。

关于mysql - 如何将两个选择结果合并为列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25443707/

相关文章:

sql - 如何为 postgres 编写 DELETE CASCADE?

sql - 如何获取最近完整的 13 周的记录?

mysql - 将整个 Wordpress 文件移动到新主机

php - MySQL IF 语句动态更改值?

mysql - 将 mysql 查询(if 函数)转换为 db2

sql - 具有实体计数 + 历史记录的 Grafana 面板

c# - 关于生成无法追踪的发票 ID 的想法

php - SQL 查询在 PHP 中没有给出任何结果

mysql - 查找 MYSQL TEXT 类型列

MYSQL 选择超过 1 天的记录