如何将2个表同名行加入一列
Posted
技术标签:
【中文标题】如何将2个表同名行加入一列【英文标题】:How to join 2 table same name rows into a column 【发布时间】:2022-01-01 11:07:35 【问题描述】:也许这个问题已经在其他地方得到解答,但我不知道如何在我的工作项目中应用该查询,而且我是使用 mysql 的初学者(新手)。
我的 phpMyAdmin 中有 2 个表。
table-1 看起来像这样:
table-2 看起来像这样
通过使用以下查询,我可以将两个表连接在一起,但列名不同。
SELECT DISTINCT `a`.`subject`,`b`.`subject`, `a`.`date`, `a`.`start_time`, `a`.`end_time`, `b`.`date`, `b`.`start_time`, `b`.`end_time`
from `time-table` as a
inner join `oral_time-table` as b on a.oral_token=b.token and a.class='EIGHTH' and a.medium='English' and a.faculty='GENERAL' and a.exam='Half-Yearly'
以下查询结果如下:
我希望两个表中的两个数据 date
名称列都按升序排列。因此,我需要一张一张地加入这两个表。
只有一个共同的列名,两个表行都被连接起来。我怎样才能做到这一点,并提前感谢...
期望的结果:
date
列升序。
【问题讨论】:
抱歉,您试图实现的目标不是很清楚。请在此处发布所需的结果 看起来像枢轴。不支持。根据使用动态 SQL 的存储过程创建。 您可以使用UNION
获得所需的结果。 SELECT subject, date, start_time, end_time from table-1 UNION SELECT subject, date, start_time, end_time FROM table-2
谢谢你,但如果你也写关于如何从UNION
加入我的数据的查询,我很高兴。这对我很有帮助
不要使用date
作为任何列名,因为它是保留关键字,不是一个好的做法。
【参考方案1】:
您可以使用UNION
达到预期的效果。
SELECT subject, `date`, start_time,
end_time
FROM TABLE-1
UNION
SELECT subject, `date`, start_time,
end_time
FROM TABLE-2
ORDER BY `date` ASC
不要使用日期作为任何列名,因为它是保留关键字并且是 不是一个好习惯。
【讨论】:
为“日期”列添加了反引号,因为日期是保留词,请参阅:dev.mysql.com/doc/refman/8.0/en/… 但我无法在日期列中添加排序规则 我创建了上述SQL语句的DBFIDDLE。当您说“我无法在日期列中添加排序规则”时,您能否提供更多信息?以上是关于如何将2个表同名行加入一列的主要内容,如果未能解决你的问题,请参考以下文章