从MySQL中的两个表中获取不同的值

时间:2019-02-05 09:37:48

标签: mysql

  

Blockquote   表作业

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

4 个答案:

答案 0 :(得分: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 :(得分:1)

尝试一下

        public Mono<ServerResponse> hello(ServerRequest request) {
            Mono<String> requestMono = request.bodyToMono(String.class);
            Mono<String> mapped = requestMono.map(name -> "Hello " + name)
                .doOnSuccess(s -> System.out.println(s));
            return ServerResponse.ok().body(mapped, String.class);
        }

答案 2 :(得分:0)

尝试

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

答案 3 :(得分:0)

如果我理解正确(并且用更多的词来解释您的问题可能会有所帮助),您正在寻找的是从两个表中检索日期列并按日期显示它们的顺序。

UNION运算符是从两个或多个表中检索数据的经典解决方案。 UNION运算符本身不会完成任务,因为您还希望按日期对结果进行排序。您可以使用第一个表字段名称将ORDER BY子句添加到最后一个SELECT中,因为UNION将使附加表中的数据适合初始表中正确的列结果集(按规范顺序排列),因此您只需对第一个选择中的列名进行排序即可,它将对整个结果集进行排序。

UNION确实消除了重复的结果,因此您在选择查询中不需要DISTINCT关键字。