2014-12-04 49 views
-1

在关系R(A,B,C,d)如果d是多值的,表观密钥是A,其下面的是不以创建第一正常形式表一种可接受的方式对于这个模式?研究指南的问题对于数据库的SQL命令

一个)分解R导入R1(A,B,C,d)和R2(d)

b)中分解R导入R1(A,B,C)和R2(A,d)

c)使用D作为主键的一部分,使关系的形式为R1(A,D,B,C)

d)确定任何记录中D的最大值,以及包括很多列D,使关系具有形式R1(A,B,C,D1,D2,...,Dn)

我有D,此刻,但不知道它是ri ght,对于我的第二个问题是我的命令是正确的?


客户(客户ID,姓氏,名字,地址,电话,CREDITLIMIT)

订单(订单编号,日期,总,CUSTID。

的LineItem(订单编号,itemNumber,qtyOrdereD。

商品(商品编号,商品名称,价格)

参考:销售数据库

对于参考的销售数据,编写SQL命令来寻找6月10日由苏亚当斯下令所有项目的项目号,2011年

SELECT姓氏,名字,CUSTID,日期,qtyOrdereD

从客户,订单的LineItem

WHERE日期=“2011年6月10日”

+2

嗨,尼克,欢迎来到StackOverflow。请阅读[快速帮助浏览](http://stackoverflow.com/tour)了解该网站的工作原理以及如何正确使用它。对于初学者,你应该只发布一个问题...每个问题:)。如果你有两个不同的问题/疑惑,这似乎是你的情况,然后发布两个不同的问题。 – AJPerez 2014-12-04 21:55:31

回答

0

您所查询的,你只是在加入这是不对的表,因为你会得到值的所有组合在你的表是不是你想要什么。你应该自然地加入他们,以获得正确的条目。正确的查询如下:

SELECT lastName, firstName, custID, date, itemNumber 
FROM Customer NATURAL JOIN Order NATURAL JOIN LineItem 
WHERE DATE = "2011-06-10" AND lastName = 'Adams' AND firstName = 'Sue'; 
+0

我们不需要将她的名字添加到查询中吗? – 2014-12-04 22:02:07

+0

哦,伙计。我忘记了,现在我会更新我的答案。 – user2548635 2014-12-05 15:37:32