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

ivqmmu1c  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(155)

假设我有两个表,它们的行数完全相同,但没有其他明显的关系:
表格A
| 识别码|项目|
| - -|- -|
| 一个|香蕉|
| 2个|橙黄色|
表格B
| 项目ID|体积|
| - -|- -|
| 小行星5550|五十个|
| 小行星5551|七十个|
我可以水平连接这两个表,形成一个如下所示的表吗?
| 识别码|项目|项目ID|体积|
| - -|- -|- -|- -|
| 一个|香蕉|小行星5550|五十个|
| 2个|橙黄色|小行星5551|七十个|

hpcdzsge

hpcdzsge1#

如果有两个表的行数完全相同,但没有其他明显的关系,并且在这两个表上,ID和itemID分别定义了行的唯一性,则可以对row_number应用MySQL ROW_NUMBER Function和join,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

pu82cl6c

pu82cl6c2#

试试这个

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

相关问题