MariaDB 连接 2 个具有相同行数的表

MariaDB concatenate 2 tables with same number of rows

假设我有 2 个 table 具有完全相同的行数,但没有其他明显的关系:

table一个

ID items
1 banana
2 orange

tableB

itemID volume
5550 50
5551 70

我可以水平连接这 2 个 table,形成 1 个 table 吗?

ID items itemID volume
1 banana 5550 50
2 orange 5551 70

试试这个

create table TableA(ID INT, Items varchar(20));
create table TableB(ItemId INT, volume varchar(20));

insert into TableA(Id, items) values (1, 'banana'), (2, 'orange');
insert into TableB(ItemId, volume) values (5550, '50'), (5551, '70');

SELECT A.ID, A.Items, B.ItemId, B.volume
FROM
(
   SELECT ID, Items, rownum()R
   FROM TableA
)A INNER join
(
  SELECT ItemId,volume,rownum()R
  FROM TableB
)B ON A.R=B.R

如果您有 2 个表,行数完全相同,但没有其他明显的关系,并且在两个表上,ID 和 itemID 分别定义了行的唯一性,您可以应用 MySQL ROW_NUMBER Function 并加入 row_number, order by 子句很重要。

尝试:

SELECT tbla.ID, tbla.Items, tblb.ItemId, tblb.volume
FROM (
       SELECT ID, Items, row_number() over( order by ID desc )row_numA
       FROM TableA
     )tbla      
INNER join
     (  SELECT ItemId,volume,row_number() over(order by ItemId desc)row_numB
        FROM TableB
     ) tblb ON tbla.row_numA=tblb.row_numB
order by tbla.ID asc;

https://dbfiddle.uk/?rdbms=mariadb_10.6&fiddle=15d13d29a84a55c4d029115c87eebe8f