У меня есть информация о количестве в моей базе данных.
1 стол, «запас», содержит productid (sku) вместе с количеством и именем файла, откуда он пришел.Выберите самую новую запись из объединенной таблицы MySQL
Другая таблица, «файл запаса», содержит все обработанные имена файлов вместе с датами.
Теперь мне нужно получить все продукты с их последними значениями запаса.
Это дает мне все продукты, несколько раз со всей их количества штока (в результате 300.000 записей)
ВЫБОР stock.stockid, stock.sku, stock.quantity, stockfile.filename, stockfile.date
С учетом запаса
INNER JOIN stockfile ON stock.stockfileid = stockfile.stockfileid
ЗАКАЗАТЬstock
.sku
ASC
Я уже пытался это:
SELECT * FROM складе
INNER JOIN stockfile ON stock.stockfileid = stockfile.stockfileid
GROUP BY
SKU HAVING stockfile.date = MAX (stockfile.date)
ЗАКАЗАТЬstock
.sku
ASC
Но это не сработало
SHOW CREATE TABLE акции:
CREATE TABLE
stock
(
stockid
BIGINT (20) NOT NULL AUTO_INCREMENT,
sku
голец (25) NOT NULL,
quantity
int (5) NOT NULL ,
creationdate
DateTime NOT NULL,
stockfileid
SMALLINT (5) без знака NOT NULL, то
touchdate
DateTime NOT NULL, то
ПЕРВИЧНЫЙ КЛЮЧ (stockid
)
) ДВИГАТЕЛЬ = MyISAM AUTO_INCREMENT = 315169 УМОЛЧАНИЮ CHARSET = latin1
SHOW CREATE TABLE stockfile:
CREATE TABLE
stockfile
(
stockfileid
SMALLINT (5) без знака NOT NULL AUTO_INCREMENT,
filename
VARCHAR (25) NOT NULL,
creationdate
DateTime УМОЛЧАНИЮ NULL, то
touchdate
DateTime УМОЛЧАНИЮ NULL, то
date
DateTime УМОЛЧАНИЮ NULL, то
begindate
DateTime УМОЛЧАНИЮ NULL, то
enddate
DateTime УМОЛЧАНИЮ NULL, то
ПЕРВИЧНЫЙ КЛЮЧ (stockfileid
)
) ДВИГАТЕЛЬ = MyISAM AUTO_INCREMENT = 265 DEFAULT CHARSET = latin1
Пожалуйста, отредактируйте ваш вопрос с помощью вывода 'SHOW CREATE TABLE stock' и' SHOW CREATE TABLE stockfile'. –