SQL - 需要帮助进行查询

时间:2011-06-19 18:30:41

标签: sql

我的数据库中有这些表:

TOY_STORE
 Store_ID(PK)
 Name

TOYS
 Toy_ID(PK)
 Store_ID(FK)
 Name

ORDERED_TOYS
 Ordered_Toy_ID(PK)
 Order_ID(FK)
 Toy_ID(FK)
 Toy_Price_per_unit
 Units

ORDERS
 Order_ID(PK)
 Customer_ID(FK)
 Date  datetime

CUSTOMERS
 Customer_ID(PK)
 Name

我需要从这些表中进行2次查询:

1-我需要显示自2005年1月起的每个order的总计,显示来自Name的{​​{1}}字段,来自Costumer的{​​{1}}字段和总计Date

2-我需要显示2005年3月每个Orders销售的单位数量,显示来自order的字段toyName来自Toys (并且可能有玩具店没有连接的玩具)以及售出的单位数量。

提前致谢!! :)

1 个答案:

答案 0 :(得分:1)

这个东西不是火箭科学,如果你的任务是创建一个与这个数据库交互的应用程序,你真的需要知道如何编写这种查询。

我在火车上,我很无聊......

SELECT c.Name, o.Date, SUM(ot.Toy_Price_per_unit*ot.Units) FROM ORDERS o 
JOIN CUSTOMERS c ON o.Customer_ID=c.Customer_ID 
JOIN ORDERED_TOYS ot ON o.Order_ID=ot.Order_ID 
WHERE DATE(o.Date) >= '2005-01-01' 
GROUP BY o.Order_ID;

SELECT t.Name, ts.Name, COUNT(*) FROM TOYS t 
LEFT JOIN TOY_STORE ts ON t.Store_ID=ts.Store_ID 
LEFT JOIN ORDERED_TOYS ot ON t.Toy_ID=ot.Toy_ID 
LEFT JOIN ORDERS o ON ot.Order_ID=o.Order_ID 
WHERE MONTH(o.Date) = 3 
GROUP BY t.Toy_ID, ts.Name;

它们是用MySQL编写的,并且测试。可能会让你开始。

请记住,Stackoverflow不适合这种性质的问题。它不是在这里教授基础知识,而是收集可能对其他人有用的问题和答案。除了你之外,这个问题几乎没有任何用处。