我有以下情况:
我有这个查询联合两个不同的表,分别命名为 VulnerabilityAlertDocumentId 和 CPE ,通过 VulnerabilityAlertDocument_Cpe 传递绑定两个表多对多关系:
SELECT CPE.* FROM VulnerabilityAlertDocument_Cpe VAD_CPE
INNER JOIN Cpe CPE ON VAD_CPE.CpeId = CPE.Id
WHERE VAD_CPE.VulnerabilityAlertDocumentId = 87926
此查询运行良好,我获得以下输出:
Id Cpe SourceId vendor_id product_id
27975 cpe:/o:google:android:1.0 NVD 984 3967
27976 cpe:/o:google:android:1.1 NVD 984 3967
27977 cpe:/o:otherCPE NVD 111 2222
因此,正如您所看到的,在此输出中,我有两个名为 vendor_id 和 product_id 的字段,它们将单个记录直接绑定到两个名为 CpeVendor <的表/ strong>和 CpeProduct 两者都包含以下列: id , nome 和 date_added
所以,现在我的问题是我想在上一个查询输出中获取 nome 列值。
我认为,对于上一个查询的每个输出记录,我还必须加入 CpeVendor 和 CpeProduct 表,但我不确定。你能帮我解决这个问题吗?
TNX
答案 0 :(得分:3)
尝试将两个表添加到您的查询中:
SELECT CPE.*, p.nome as Product, c.nome as Vendor
FROM VulnerabilityAlertDocument_Cpe VAD_CPE
INNER JOIN Cpe CPE ON VAD_CPE.CpeId = CPE.Id
LEFT OUTER JOIN CpeVendor c ON CPE.vendor_id = c.vendor_id
LEFT OUTER JOIN CpeProduct p on CPE.product_id = p.product_id
WHERE VAD_CPE.VulnerabilityAlertDocumentId = 87926