gpt4 book ai didi

mysql - 对这个简单的 INNER JOIN 查询有疑问吗?

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

我对这个简单的INNER JOIN 查询有以下疑问。

我有这两个表必须连接在一起:

第一个表名为 VulnerabilityFix 并包含以下列:

Id: int identity

FixName: varchar

Vendor: varchar

Title: varchar

Version: varchar

第二个表名为VulnerabilityAlertDocument_VulnerabilityFix(这将前一个表绑定(bind)到另一个表,但此时这并不重要)并包含以下列:

VulnerabilityAlertDocumentId: int

VulnerabilityFixId: int

现在,在我的数据库中,VulnerabilityFix 表只包含一条空记录(这条记录有一个 id,但所有其他字段都是空\null),事实上,如果我执行选择 *,我得到:

select * from VulnerabilityFix

Id FixName Vendor Title Version

1

进入 VulnerabilityAlertDocument_VulnerabilityFix 我有这样的东西:

select * from VulnerabilityAlertDocument_VulnerabilityFix

VulnerabilityAlertDocumentId VulnerabilityFixId

78385 1

78386 1

....................................................
....................................................
....................................................
78398 1

好的,所以我想 JOIN toghert 这两个表,传递 VulnerabilityAlertDocument_VulnerabilityFix 表的 VulnerabilityAlertDocumentId 字段的值,我获得所有相关的记录在 VulnerabilityFix 表中。

因此,在这种情况下,我要检索具有 id(值等于 1)且所有其他字段为空\null 的先前唯一记录。

所以我的查询是:

SELECT VF.* FROM VulnerabilityAlertDocument_VulnerabilityFix VAD_VF
INNER JOIN VulnerabilityFix VF ON VAD_VF.VulnerabilityAlertDocumentId = VF.Id
WHERE VAD_VF.VulnerabilityAlertDocumentId = 1

问题是,当我执行此查询时,我获得了一组空记录,而不是我期望获得的唯一记录。

为什么?我错过了什么?

谢谢

最佳答案

我认为您的查询应该更像是:

SELECT VF.* FROM VulnerabilityAlertDocument_VulnerabilityFix VAD_VF
INNER JOIN VulnerabilityFix VF ON VAD_VF.VulnerabilityFixId = VF.Id
WHERE VAD_VF.VulnerabilityAlertDocumentId = 78385

也就是说,自 VulnerabilityFixId 以来,您在 ON 条件下使用了错误的列似乎是VulnerabilityFix.Id的外键而不是 VulnerabilityAlertDocumentId .

另一方面,我看不到任何 VulnerabilityAlertDocument_VulnerabilityFix.VulnerabilityAlertDocumentId在你的数据集中值为 1(where 条件)

关于mysql - 对这个简单的 INNER JOIN 查询有疑问吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23536803/

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