嵌套或相关子查询 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
我听说我的查询确实产生了正确的结果,但它没有明确使用有序的关系代数步骤。所以我需要做的是:
- (天然?)在 Supplies_t 上加入 Raw_Materials_t,仅选择 material_description 确实是胡桃木并且 unit_price 小于 $14
的行
- 获取这些结果,仅投影 Vendor_ID 列(丢弃其他列)
- 在 Vendor_t
加入此专栏
- 仅投影上述结果中的 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
我有以下关系代数任务,我需要将其转换为 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
我听说我的查询确实产生了正确的结果,但它没有明确使用有序的关系代数步骤。所以我需要做的是:
- (天然?)在 Supplies_t 上加入 Raw_Materials_t,仅选择 material_description 确实是胡桃木并且 unit_price 小于 $14 的行
- 获取这些结果,仅投影 Vendor_ID 列(丢弃其他列)
- 在 Vendor_t 加入此专栏
- 仅投影上述结果中的 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