mysql限制行数_限制MySQL表之间联接的行数

我有什么

我在MySQL数据库(5.6.35版)中有以下两个表。

CREATE TABLE `Runs` (

`Name` varchar(200) NOT NULL,

`Run` varchar(200) NOT NULL,

`Points` int(11) NOT NULL

) DEFAULT CHARSET=latin1;

INSERT INTO `Runs` (`Name`, `Run`, `Points`) VALUES

('John', 'A08', 12),

('John', 'A09', 3),

('John', 'A01', 15),

('Kate', 'A02', 92),

('Kate', 'A03', 1),

('Kate', 'A04', 33),

('Peter', 'A05', 8),

('Peter', 'A06', 14),

('Peter', 'A07', 5);

CREATE TABLE `Users` (

`Name` varchar(500) NOT NULL,

`NumberOfRun` int(11) NOT NULL

) DEFAULT CHARSET=latin1;

INSERT INTO `Users` (`Name`, `NumberOfRun`) VALUES

('John', 2),

('Kate', 1),

('Peter', 3);

ALTER TABLE `Runs`

ADD PRIMARY KEY (`Run`);

我的目标是什么

约翰有

Users.NumberOfRun=2

,所以我将从

Runs

桌子

凯特有

Users.NumberOfRun=1

,所以我将从

桌子

彼得有

Users.NumberOfRun=3

,所以我将从

桌子

我想得出以下结果

+-------+-----+--------+

| Name | Run | Points |

+-------+-----+--------+

| John | A01 | 15 |

| John | A08 | 12 |

| Kate | A02 | 92 |

| Peter | A06 | 14 |

| Peter | A05 | 8 |

| Peter | A07 | 5 |

+-------+-----+--------+

我试过的

首先,如果它是SQL Server,我将使用

ROW_NUMBER() OVER (PARTITION BY ... ORDER BY ) AS [rn]

对运行表执行函数,然后生成

JOIN

Users

上的表

Users.NumberOfRun<=[rn]

.

我读过了

this

文件,但似乎

PARTITONING

在MySQL中,它是从8.x版开始提供的,但我使用的是5.6.x版。

SELECT t0.Name,t0.Run

FROM Runs AS t0

LEFT JOIN Runs AS t1 ON t0.Name=t1.Name AND t0.Run=t1.Run AND t1.Points>t0.Points

WHERE t1.Points IS NULL;

但它并没有给出行号,这本质上是为了我像上面描述的那样进行连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值