Mysql中UNION子句的替代 [英] Alternative to UNION clause in Mysql
本文介绍了Mysql中UNION子句的替代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个表:-表a,表b.
I have two table :- table a, table b.
表a
-ID ---
1
2
3
4
5
7
表b
--- ID ----
---ID----
2
3
4
5
6
我必须在没有 UNION 命令的情况下获得这样的输出:-
I have to get Output Like this without UNION Command:-
---- ID -----
----ID-----
1
2
3
4
5
6
7
注意:我对联合有一个解决方案:-
**select * from a
UNION
select * from b;**
我需要替代此方法.请专家建议.
推荐答案
为此,我们需要另一个具有(至少)2行的表:
We need another table with (at least) 2 rows for this:
CREATE TABLE d
( id INT NOT NULL
);
INSERT INTO d
(id)
VALUES
(0), (1) ;
然后,如果我们只想查询一个,我们可以使用(这很有趣,请不要在生产中使用,这就是为什么我们有 UNION
):
Then, if we want to have only one query, we can use (this is for fun, DO NOT USE in production, that's why we have UNION
):
SELECT DISTINCT
COALESCE(aa.id, bb.id) AS id
FROM
d
LEFT JOIN a AS aa ON d.id = 0
LEFT JOIN b AS bb ON d.id = 1
WHERE
COALESCE(aa.id, bb.id) IS NOT NULL
ORDER BY
id ;
在 SQLfiddle.com 和其他测试中进行了测试表格组合:
Tested at SQLfiddle.com, and for other table combinations:
1 row - 1 row
2 rows - 2 rows
0 rows - 1 row
0 rows - 2 rows
0 rows - 0 rows
这篇关于Mysql中UNION子句的替代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文