gpt4 book ai didi

sql - 如何编写查询以在连接两个表时仅获取第一个匹配行?

转载 作者:搜寻专家 更新时间:2023-10-30 23:22:47 24 4
gpt4 key购买 nike

考虑我有以下表格:

表 1:

AId
AMoniker

表 2:

BId
BMoniker

Table1->Table2是一对多的关系

我想要这两个表中的一个临时表,如果一个特定的 Amoniker 有多个 BMonikers,那么只有第一个应该放在表中。

例如,如果表格有以下数据:

表 1:

1 ABCD
2 DEFG
3 QWER

表 2:

1 QZ
1 XC
1 CV
2 DE
2 OP
3 QW

查询应返回以下内容:

ABCD QZ
DEFG DE
QWER QW

我获取所有行的查询是:

select b.BMoniker, a.AMoniker
into #moniker_map
from Table1 a inner join Table2 b
on a.Aid=b.Bid

我如何修改它以便每个 ID 仅从 Table2 获取第一行。

我尝试了以下查询:

select b.BMoniker, a.AMoniker
from Table1 a inner join Table2 b
on a.Aid=b.Bid
and b.BMoniker in
(
select top 1 BMoniker
from Table2
where Bid=cb.Bid
ORDER BY BMoniker
)

但是我得到以下错误:关键字“top”附近的语法不正确Sybase 错误代码 = 156,SQLState="ZZZZZ"

最佳答案

从表 2 中选择具有最小值的行(PostgreSQL 语法):

SELECT a.AMoniker, MIN(b.BMoniker) FROM Table1 a, Table2 b
WHERE a.Aid = b.Bid GROUP BY 1;

关于sql - 如何编写查询以在连接两个表时仅获取第一个匹配行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4229931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com