从MySQL中两条表得到不同的值

问题描述 投票:0回答:4

大段引用表功课

sr_no  homework_date  homework
1        2019-02-01   essay
2        2019-02-03   some stuff
2        2019-02-06   some stuff

功课表

sr_no  classwork_date  classwork
1        2019-02-01   essay
1        2019-02-02   essay
2        2019-02-04   some stuff
2        2019-02-05  some stuff

结果会是这样的日期

2019-02-01
2019-02-02
2019-02-03
2019-02-04
2019-02-05
2019-02-06
mysql
4个回答
1
投票

你可以试试下面用左,右连接,并通过UNION合并两个数据集

select coalesce(classwork_date,homework_date) as date
from classwork left join homework on classwork_date=homework_date
union 
select coalesce(classwork_date,homework_date)
from classwork right join homework on classwork_date=homework_date

1
投票

尝试这个

 SELECT 
    homework_date
FROM
    homework 
UNION SELECT 
    classwork_date
FROM
    classwork
ORDER BY homework_date;

0
投票

尝试这个

SELECT DISTINCT
homework_date
FROM
homework 
UNION 
SELECT DISTINCT
classwork_date
FROM
classwork
ORDER BY homework_date;

0
投票

如果我理解正确的(和更多的单词解释您的问题将有可能帮助)你正在寻找的是从两个表中检索日期栏和日期显示它们的顺序。

一个典型的解决方案,以从两个或更多表中检索的数据是UNION运算符。通过自身的UNION运营商将无法完成任务,因为你也想按日期顺序结果。您可以添加ORDER BY条款到最后SELECT,使用第一个表字段名,因为UNION会从附加表的列中的数据装入在初始结果集的正确的列(按规范顺序),所以你可以排序从第一选择列名,它会整理整个结果集。

UNION并消除重复的结果,所以你不应该需要在你的选择查询的关键字DISTINCT

© www.soinside.com 2019 - 2024. All rights reserved.