替代Mysql中的UNION子句

Shr*_*pta 3 mysql sql database

我有两张桌子: - 表a,表b.

表a

- -ID - -

 1
 2
 3
 4
 5
 7
Run Code Online (Sandbox Code Playgroud)

表b

- -ID - -

 2
 3
 4
 5
 6
Run Code Online (Sandbox Code Playgroud)

没有UNION命令,我必须得到像这样的输出: -

- - ID - - -

1
2
3
4
5
6
7
Run Code Online (Sandbox Code Playgroud)

注意:我有一个联合解决方案: -

  **select * from a
      UNION
   select * from b;**
Run Code Online (Sandbox Code Playgroud)

我需要替代它.请专家建议.

ype*_*eᵀᴹ 5

我们需要另一个包含(至少)2行的表:

CREATE TABLE d
  ( id INT NOT NULL 
  );

INSERT INTO d
  (id)
VALUES
  (0), (1) ;
Run Code Online (Sandbox Code Playgroud)

然后,如果我们想要只有一个查询,我们可以使用(这是为了好玩,不要在生产中使用,这就是为什么我们有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 ;
Run Code Online (Sandbox Code Playgroud)

SQLfiddle.com上测试,以及其他表组合:

1行 - 1行
2行 - 2行
0行 - 1行
0行 - 2行
0行 - 0行