J'ai des informations sur la quantité en stock dans ma base de données.
1 table, "stock", détient le productid (sku) avec la quantité et le nom de fichier d'où il vient.Sélectionner l'entrée la plus récente d'une table MySQL jointe
L'autre table, "stockfile", contient tous les noms de fichiers traités ainsi que les dates.
Maintenant, je dois obtenir tous les produits avec leurs dernières valeurs en stock.
Cela me donne tous les produits plusieurs fois avec toute leur quantité d'actions (résultat 300,000 records)
SELECT stock.stockid, stock.sku, stock.quantity, stockfile.filename, stockfile.date
DE stock
INNER JOIN stockfile ON stock.stockfileid = stockfile.stockfileid
COMMANDER PARstock
.sku
ASC
Je l'ai déjà essayé ceci:
SELECT * FROM stock
INNER JOIN stockfile SUR stock.stockfileid = stockfile.stockfileid
GROUP BY sku
AYANT stockfile.date = MAX (stockfile.date)
COMMANDER PARstock
.sku
ASC
Mais ça n'a pas
SHOW CREATE TABLE stock:
CREATE TABLE
stock
(
stockid
bigint (20) NOT AUTO_INCREMENT NULL,
sku
char (25) NOT NULL,
quantity
int (5) NOT NULL ,
creationdate
datetime NOT NULL,
stockfileid
smallint (5) non signé NOT NULL,
touchdate
datetime NOT NULL,
PRIMARY KEY (stockid
)
) MOTEUR = MyISAM AUTO_INCREMENT = 315169 DEFAULT CHARSET = latin1
SHOW CREATE TABLE stockfile:
CREATE TABLE
stockfile
(
stockfileid
smallint (5) non signé NOT AUTO_INCREMENT NULL,
filename
varchar (25) NOT NULL,
creationdate
datetime NULL DEFAULT,
touchdate
datetime NULL DEFAULT,
date
datetime NULL DEFAULT,
begindate
datetime DEFAUT NULL,
enddate
date/heure DEFAUT NULL,
PRIMARY KEY (stockfileid
)
) MOTEUR = MyISAM AUTO_INCREMENT = 265 DÉFAUT charset = latin1
S'il vous plaît modifier votre question avec la sortie de «SHOW CREATE TABLE stock» et «SHOW CREATE TABLE stockfile». –