gpt4 book ai didi

sql-server - 内部连接返回更多行然后存在于表中

转载 作者:行者123 更新时间:2023-12-04 04:25:32 27 4
gpt4 key购买 nike

直到今天,我对内连接的想法是它将返回满足连接条件的表中存在的最小行数。

例如。 如果 表A 包含 4 行和 表B 包含 7 行。如果它们满足连接条件,我期望 4 行可以是最大输出。

我刚刚写了一个 sp,我在其中创建了两个临时表并填充它们。然后我对它们进行了内部连接,但返回了更多行(在我的情况下,返回了 29 行,我期待 4)
经过一番搜索,我找到了这个
link

这证实我可以发生,但我仍然想知道什么是 我的选择 限制返回的结果。

下面是我的存储过程。

ALTER PROCEDURE [dbo].[GetDDFDetailOnSiteCol]
@siteId int,
@colNum int
AS
BEGIN
SET NOCOUNT ON;

create Table #portDetail
(
ddfId int,
portDetail nvarchar(50),
siteId int
)
Insert into #portDetail SELECT ddf.id, ddf.portDetail, site.Site_ID from site
inner join ddf ON site.Site_ID = ddf.siteCodeID
where ddf.siteCodeID = @siteId and ddf.colNo= @colNum
order by colNo,blockNum,portRowNum,portColNum

create Table #portAllocationDetail
(
assigned_slot nvarchar(50),
siteId int
)
Insert into #portAllocationDetail
SELECT dbo.portList.assigned_slot, dbo.site.Site_ID
FROM dbo.portList INNER JOIN
dbo.site ON dbo.portList.siteCodeID = dbo.site.Site_ID
where dbo.site.Site_ID = @siteId

--select * from #portAllocationDetail
Select #portDetail.ddfId,#portDetail.portDetail,#portAllocationDetail.siteId,#portAllocationDetail.assigned_slot FROM #portDetail
INNER JOIN #portAllocationDetail
ON
#portDetail.siteId = #portAllocationDetail.siteId
END

最佳答案

inner join为 TableA 中的每一行重复 TableB 中的每个匹配行。所以如果表A中有4行,表B中有7行,则最大行数为28。

Example at SQL Fiddle.

关于sql-server - 内部连接返回更多行然后存在于表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12389284/

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