我知道这里有很多问题与我面临的问题有关,但没有一个能够解决我的情况。
我有两个表 TABLE_1 和 TABLE_2 。
表 TABLE_1 包含以下列: ID, NAME
表 TABLE_2 包含以下列: 码, 量, QUANTITY
这两个表的列数不同,但行数相同。
可以编写一个SQL查询,其中我可以从单个结果集中的两个表中检索所有列。 我正在研究MySQL服务器。
注意:两个表都没有公共列。任何帮助表示赞赏。
这就是我想要检索的方式:
| ID | NAME | CODE | AMOUNT | QUANTITY |
| | | | | |
| | | | | |
| | | | | |
答案 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;