合并两个结果集

时间:2018-02-14 14:24:46

标签: mysql sql database select

我知道这里有很多问题与我面临的问题有关,但没有一个能够解决我的情况。

我有两个表 TABLE_1 TABLE_2

TABLE_1 包含以下列:  ID,  NAME

TABLE_2 包含以下列:  码,  量,  QUANTITY

这两个表的列数不同,但行数相同。

可以编写一个SQL查询,其中我可以从单个结果集中的两个表中检索所有列。 我正在研究MySQL服务器。

注意:两个表都没有公共列。任何帮助表示赞赏。

这就是我想要检索的方式:

| ID  |  NAME  |  CODE   | AMOUNT  | QUANTITY |
|     |        |         |         |          |
|     |        |         |         |          |
|     |        |         |         |          |

2 个答案:

答案 0 :(得分:0)

参考以下查询

SELECT a.ID, a.NAME, b.CODE,b.AMOUNT  ,b.QUANTITY 

FROM (SELECT 
  ROW_NUMBER() OVER(ORDER BY name ASC) AS RowNo, * FROM TABLE_1 )a

inner join (SELECT 
  ROW_NUMBER() OVER(ORDER BY  CODE ASC) AS RowNo, * FROM TABLE_2 )b 
On a.RowNo= b.RowNo

答案 1 :(得分:0)

@Allan,这是我的解决方案。希望它有所帮助。

CREATE TABLE t1(
ID INTEGER,
NAME VARCHAR(10)
);

CREATE TABLE t2(
CODE  INTEGER,
AMOUNT INTEGER,
QUANTITY INTEGER
);

INSERT INTO t1 VALUES(91, 'Name1');
INSERT INTO t1 VALUES(92, 'Name2');
INSERT INTO t1 VALUES(93, 'Name3');

INSERT INTO t2 VALUES(1, 123, 2);
INSERT INTO t2 VALUES(2, 233, 4);
INSERT INTO t2 VALUES(3, 433, 1);

Query:
SET @rank=0;
SET @rank2=0;

select id,name,code,amount,quantity
from 
(SELECT @rank:=@rank+1 AS rank, id, name
from t1) a,
(SELECT @rank2:=@rank2+1 AS rank, code, amount, quantity
from t2) b
where a.rank=b.rank;