【发布时间】:2012-11-30 04:51:05
【问题描述】:
我有 3 张桌子 products 和 stock 和 purchases。
Puchases 的 primary key 是 purchaseID。
我的products 表有一个primary key 或productID,然后是包含产品详细信息的列。
我的stock 表有一个primary key 的framenumber 一个foreign key 的productID 和另一个foriegn key 的purchaseID。
并非所有产品都有库存。
我想joinprodcuts 和productID 旁边的股票表,并在末尾有一行计算purchaseID 列中的空值数量,这表示我有多少有货。
我已经尝试了queries 的负载,但似乎总是只在stock 表中找到条目总数,或者subqueries 没有正确加入。
我尝试过的一些事情
SELECT * , COUNT( * ) AS Count
FROM Products
LEFT JOIN Stock ON Products.productID = Stock.productID
WHERE Stock.OrderID IS NULL AND Stock.framenumber IS NOT NULL
GROUP BY Products.productID
只给我按productID分组的库存中所有对象的数量,而不是加入所有产品
架构
CREATE TABLE BikeStock (
FrameNumber VARCHAR(10) PRIMARY KEY,
BikeCode VARCHAR(40),
OrderID INT,
FOREIGN KEY (BikeCode) REFERENCES Bike(BikeCode),
FOREIGN KEY (OrderID) REFERENCES Purchase(OrderID)
);
CREATE TABLE Bike (
BikeCode VARCHAR (40) PRIMARY KEY,
Manufacturer VARCHAR (30),
Model VARCHAR (30),
SubType VARCHAR (30),
Year SMALLINT,
FrameMaterial VARCHAR (20),
Description TEXT,
Gender VARCHAR (6),
Type VARCHAR (20),
Price DECIMAL (11,2)
);
CREATE TABLE Purchase (
DateOfPurchase DATETIME,
OrderID INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(OrderID),
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customer(CustomerID)
);
【问题讨论】:
-
请发布几个失败的查询。
-
不能发布带有示例数据的表架构
标签: php mysql sql database join