注意:由於您沒有爲您的表提供SQL DDL,因此我創建了此表。給我一些意見,我會編輯答案,直到我們做對了。
CREATE TABLE priceRequestsProducts AS (
userId INT NOT NULL,
productId INT NOT NULL,
date DATE NOT NULL DEFAULT CURRENT_TIMESTAMP,
INDEX(userId),
INDEX(productId),
PRIMARY KEY (userId, productId, date),
CONSTRAINT fk_prp_users FOREIGN KEY (userId) REFERENCES (Users.id),
CONSTRAINT fk_prp_products FOREIGN KEY (productId) REFERENCES (Products.id)
) ENGINE=InnoDb;
-- # Shows all dates each user has made a priceRequest for at least one product:
SELECT U.userId, U.firstName, U.lastName, U.username, date
FROM Users U
JOIN priceRequestsProducts as prp ON u.id = prp.id
GROUP BY prp.userId, prp.date;
-- # Shows number of price requests for a product on all dates
SELECT P.id, P.name, count(1) as numRequests, prp.date
FROM Products P
JOIN priceRequestsProducts prp ON prp.productId = P.id
GROUP BY prp.productId, prp.date;
作業「,這不是功課!這是我爲我工作的公司工作的一個實際項目。 – 2009-06-01 18:38:03