从不相关的表中选择不同的相同列值

Posted

技术标签:

【中文标题】从不相关的表中选择不同的相同列值【英文标题】:selecting distinct same column values from non related tables 【发布时间】:2009-06-23 14:39:31 【问题描述】:

在我的数据库中,我有 3 个表,它们有 2 个相似的列,即年和月。这些表没有任何链接。

我想要做的是从这些表中选择不同的年份和月份。所以表1包含:

2009 年 5 月(多次) 2008年11月(多次) 2007年5月(多次)

表 2 和表 3 包含:

2009 年 11 月(多次) 2009年5月(多次) 2008年11月(多次) 2008年5月(多次)

我希望能够选择从 2009 年 11 月到 2007 年 5 月的完整年月列表。

我正在努力解决这个问题。

干杯

【问题讨论】:

【参考方案1】:
SELECT month, year
  FROM table1
UNION
SELECT month, year
  FROM table2

UNION 将自动只返回不同的行。

【讨论】:

【参考方案2】:
select distinct year, month from table 1
union
select distinct year, month from table 2
order by year, month

唯一的问题是因为你的月份是 alpha 表示,它不能正确排序,但我确定 oracle 有一个函数可以将月份的字符串表示转换为数字,你可以按那个排序.

【讨论】:

非常感谢。应该猜到它真的是一个工会。对于我正在做的事情,我可以按月使用订单。但是,如果有人一年中的所有月份都在使用,那么他们可以进行解码

以上是关于从不相关的表中选择不同的相同列值的主要内容,如果未能解决你的问题,请参考以下文章

使用Mysql从不同名称的不同表中选择值作为贷方和借方并计算余额

如何在使用同一表中的不同列值条件查询时处理空值

SQL求助,我要想在一张表新增多行,只有第一列值不同,后面的列值相同,该怎么插入?

从两个表中选择不匹配的列值

计算具有与相同 ID 相关的不同列值的结果

连接具有相同值的行的列值(不同列的)