我的数据库中有库存数量信息。
1 个表,“stock”,包含 productid (sku) 以及数量和来自哪里的文件名。
另一个表“stockfile”包含所有已处理的文件名以及日期。
现在我需要获取所有具有最新库存数量值的产品。
这给了我所有产品的所有库存数量多次(产生 300.000 条记录)
SELECT stock.stockid, stock.sku, stock.quantity, stockfile.filename, stockfile.date
FROM stock
INNER JOIN stockfile ON stock.stockfileid = stockfile.stockfileid
ORDER BYstock
。sku
ASC
我已经尝试过了:
SELECT * FROM stock
INNER JOIN stockfile ON stock.stockfileid = stockfile.stockfileid
GROUP BY sku
HAVING stockfile.date = MAX( stockfile.date )
ORDER BYstock
。sku
ASC
但它没有用
显示创建表库存:
CREATE TABLE
stock
(
stockid
bigint(20) NOT NULL AUTO_INCREMENT,
sku
char(25) NOT NULL,
quantity
int(5) NOT NULL,
creationdate
datetime NOT NULL,
stockfileid
smallint(5) unsigned NOT NULL,
touchdate
datetime NOT NULL,
PRIMARY KEY (stockid
)
) ENGINE=MyISAM AUTO_INCREMENT =315169 默认字符集=latin1
显示创建表库存文件:
CREATE TABLE
stockfile
(
stockfileid
smallint(5) unsigned NOT NULL AUTO_INCREMENT,
filename
varchar(25) NOT NULL,
creationdate
datetime DEFAULT NULL,
touchdate
datetime DEFAULT NULL,
date
datetime DEFAULT NULL,
begindate
datetime DEFAULT NULL,
enddate
datetime DEFAULT NULL,
PRIMARY KEY (stockfileid
)
) ENGINE=MyISAM AUTO_INCREMENT=265默认字符集=latin1