我有 3 张桌子products
和.stock
purchases
Puchases
有一个primary key
。purchaseID
我的products
表有一个primary key
ofproductID
然后列,其中包含有关产品的详细信息。
我的stock
桌子上有一个ofprimary key
和另一个of 。framenumber
foreign key
productID
foriegn key
purchaseID
并非所有产品都有库存。
我想和库存表在join
最后有一行,它计算列中空值的数量,它代表我有多少库存。prodcuts
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)
);