当前位置: 首页 > 面试题库 >

SQL内部联接返回的行比预期多

林华皓
2023-03-14
问题内容

当每个表只有340行时,以下查询将返回> 7000行。

SELECT Config.Spec, TempTable.Spec FROM Confg INNER JOIN TempTable on Config.Spec = TempTable.Spec

为什么会这样?如果INNER JOIN仅在两个表中都有匹配项时才返回一行,那么为什么要为匹配项返回多行。


问题答案:

如果有一个以上的行具有相同的Spec价值TempTable为相同Spec的价值Confg,那么你会得到重复的行,反之亦然。



 类似资料:
  • 问题内容: 我似乎无法内部连接到教师表以获得名字和姓氏。 我收到的错误消息是 问题答案: 以下错误是因为您未指定列: Msg 8156,第16级,状态1,第3行 为“ MaxBookingDays”多次指定了“ ID”列。 因此,我将您的查询稍作更改,如下所示:

  • 本文向大家介绍Microsoft SQL Server 内部联接,包括了Microsoft SQL Server 内部联接的使用技巧和注意事项,需要的朋友参考一下 示例 Inner join根据一个或多个条件(使用ON关键字指定)仅返回在两个表中匹配/存在的记录/行。这是最常见的联接类型。的一般语法为inner join: 也可以简化为JOIN: 例 将内部联接与左侧外部联接一起使用(不存在替代)

  • 我有以下两个表格: 我的代码是: 说明:表“预付款”为预付款表,“贷款”为贷款账户表。预付款可用于同一目的多次(此处用于购买产品)。每个预付款由预付款id标识。由于两个预付款用于相同的目的(此处用于购买产品),它们将具有相同的预付款id。另一方面,贷款是针对任何预付款进行的。贷款也可以采取多次对同一预付款。如果要偿还任何贷款,则会将其插入预付款id的“存款金额”列中。 在loan_page.php

  • 我正在尝试从查询中获取剩余的元组。在本例中,course_id3和4来自courses,因为用户admin@没有使用这些(他们只使用了1和2)。当我尝试左联接时,表已经很好地联接了,查询也正常工作... 但这将返回课程1和2,而不是3和4

  • 问题内容: 我很难做到以下几点: 我想加入ValTbl,但仅适用于不同的值。 问题答案: 试试这个: 或这样做(它的作用相同,但语法不同):

  • 问题内容: 我正在创建一个拍卖网站。人们可以在这里寻找物品并在其上下注。我希望在用户帐户区域中有一个列表,显示用户对其进行出价的所有项目。 当然,每个项目可以有多个来自不同用户的赌注,因此我只希望显示最高金额的项目。这样一来,用户就可以关注其出价所在的所有项目,并可以跟踪他是否仍然是出价最高的项目。 这是我的数据库的样子: 因此,如上所示,我有3个表(item,itembid和user)。如您所见