让成为以下数据库:
产品(构造函数、模型、类型)
PC(型号、速度、RAM、HD、CD、价格)
笔记本电脑(型号、速度、内存、高清、屏幕、价格)
打印机(型号、颜色、类型、价格)
谁是制造商提供打印机和 PC?
我认为关系代数的答案是:
Π构造函数(产品 ⋈ 笔记本电脑 ⋈ 打印机)
但我不知道如何用 SQL 编写它,它会是:
SELECT Constructor
FROM Product NATURAL JOIN Laptop NATURAL JOIN Printer;
让成为以下数据库:
产品(构造函数、模型、类型)
PC(型号、速度、RAM、HD、CD、价格)
笔记本电脑(型号、速度、内存、高清、屏幕、价格)
打印机(型号、颜色、类型、价格)
谁是制造商提供打印机和 PC?
我认为关系代数的答案是:
Π构造函数(产品 ⋈ 笔记本电脑 ⋈ 打印机)
但我不知道如何用 SQL 编写它,它会是:
SELECT Constructor
FROM Product NATURAL JOIN Laptop NATURAL JOIN Printer;
您的问题有点不清楚 - “类型”字段是否指定“PC”、“笔记本电脑”或“打印机” - 如果是这样,它相对容易 - 根本不需要加入 - 只是
如果“类型”不是上述类型,那么它会比较棘手,但不会太难。顺便说一句,'Type'
keyword
在某些 RDBMS 产品中是一个 - 我建议将其更改为 'p_Type' 或类似的。为了解决这个问题,我执行了以下操作(此处为 SQLFiddle ):
我没有设置引用约束——我把它留给你自己练习:-)(特别是因为你还没有提供你的特定 RDBMS)。我还排除了非连接字段(对我来说更少打字:-))
查询:
结果:
Et voilà - 正确的结果 - 除非我误解了你?
为了获得正确的结果,您可以这样做:
希望这能帮助您解决问题。