嵌套或相关子查询 SQL

Nested or correlated subquery SQL

我有以下关系代数任务,我需要将其转换为 SQL 查询,与 Microsoft SQL 服务器兼容:

相关表格如下:

Raw_Materials_t: material_ID, material_description,

Supplies_t: Vendor_ID, Material_ID, Unit_Price

Vendor_t: Vendor_ID, Vendor_Name

SELECT DISTINCT V.Vendor_ID
FROM Raw_Materials_t R, Supplies_t S, Vendor_t V
WHERE R.Material_description = 'walnut'
  AND S.Unit_price < 14
  AND R.Unit_price < 14
  AND V.Vendor_ID = S.Vendor_ID

我听说我的查询确实产生了正确的结果,但它没有明确使用有序的关系代数步骤。所以我需要做的是:

  1. (天然?)在 Supplies_t 上加入 Raw_Materials_t,仅选择 material_description 确实是胡桃木并且 unit_price 小于 $14
  2. 的行
  3. 获取这些结果,仅投影 Vendor_ID 列(丢弃其他列)
  4. 在 Vendor_t
  5. 加入此专栏
  6. 仅投影上述结果中的 Vendor_Name 列。

这是嵌套子查询还是相关子查询?我对两者都不熟悉,也不确定如何进行。

您在 Material 和其他任何东西之间没有连接条件。

这是完整的查询,只是简单的连接,没有相关查询或子查询:

SELECT distinct V.Vendor_ID 
FROM Raw_Materials_t R
join Supplies_t S on S.Material_ID=R.Material_ID
join Vendor_t V on V.Vendor_ID=S.Vendor_ID
WHERE R.Material_description = 'walnut' AND S.Unit_price < 14