【问题标题】:How to join 2 table same name rows into a column如何将2个表同名行加入一列
【发布时间】: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 作为任何列名,因为它是保留关键字,不是一个好的做法。

标签: mysql sql


【解决方案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。当您说“我无法在日期列中添加排序规则”时,您能否提供更多信息?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-26
相关资源
最近更新 更多