データベースがあり、テーブル PEDIDOC にあるデータを FALTANTE と混合して取得する必要がありますが、一致する FALTANTE がなくても PEDIDOC のすべてのデータが必要なため、左結合を行う必要があります。私はトリプルチェックを行い、すべての情報が正しく入力され、すべてがそこにあります.Select * FROM pedidocを実行するだけで、Excelでフィルタリングすると期待どおりの結果が得られますが、左の結合を行うと、製品が欠落しています.
ここにクエリがあります
SELECT
`pedidoc`.`fecha`,
`pedidoc`.`IdPedido`, `pedidoc`.`plaza`, `pedidoc`.`IdProducto`,
`pedidoc`.`Categoria`,`pedidoc`.`Pedido`,`faltante`.`faltante`
FROM `pedidoc`
LEFT JOIN `caducidad` ON `pedidoc`.`IdProducto`=`faltante`.`IdProducto`
GROUP BY `pedidoc`.`fecha`, `pedidoc`.`IdProducto`
データベースはこちら
CREATE TABLE Faltante (
IdProducto DECIMAL(17,0) NOT NULL,
Plaza VARCHAR(40) NOT NULL,
Fecha VARCHAR(10) NOT NULL,
Faltante INT NULL,
FOREIGN KEY(IdProducto) REFERENCES Producto(IdProducto),
UNIQUE(IdProducto, Fecha, Plaza)
)Engine=InnoDB;
CREATE TABLE pedidoc (
IdProducto DECIMAL(17,0) NOT NULL,
IdPedido VARCHAR(40) NOT NULL,
Plaza VARCHAR(40) NOT NULL,
Fecha VARCHAR(10) NOT NULL,
Categoria VARCHAR(40) NOT NULL,
Pedido INT NULL,
FOREIGN KEY(IdProducto) REFERENCES Producto(IdProducto),
UNIQUE(IdProducto, Fecha, Plaza)
)Engine=InnoDB;
返されるデータは正しい (いくつかのランダム サンプルを取得) ですが、pedidoc のデータの半分以上が欠落しています。
クエリの何が問題になっていますか?
参考までに、テスト マシンと WAMP スタックで Windows 8 を実行しています。
サルドス、グスタボ
編集>「最初の」日に取得したテーブルは次のとおりです。問題は、実際にはプラザごとに 1 日 1 つの製品があるのに、1 日 1 つの製品しか必要としないことです。プラザごとにほぼ同じ 1 つの製品リストがあるはずですが、モンテレイの場合、すべての製品ではなく 2 つしか表示されません。
fecha IdPedido plaza IdProducto Categoria Pedido caducidad
01/01/2012 2589970-20 Mexico 4111 Bigdonuts 0 0
01/01/2012 2589970-20 Mexico 7920 Bigdonuts 406 0
01/01/2012 2589970-20 Mexico 7921 Bigdonuts 425 0
01/01/2012 2589970-20 Mexico 7922 Bigdonuts 712 0
01/01/2012 2589970-20 Mexico 7923 Bigdonuts 454 0
01/01/2012 2589970-20 Mexico 7924 Bigdonuts 31 0
01/01/2012 2589970-20 Mexico 7925 Bigdonuts 11 0
01/01/2012 2589970-20 Mexico 7926 Bigdonuts 147 0
01/01/2012 2590100-10 Monterrey 7928 Bigdonuts 128 0
01/01/2012 2590100-10 Monterrey 7929 Bigdonuts 70 0
01/01/2012 2590090-30 Reynosa 7931 Big Donuts 12 0
01/01/2012 2590090-30 Reynosa 7932 Big Donuts 154 0
01/01/2012 2590090-30 Reynosa 7933 Big Donuts 23 0
01/01/2012 2590090-30 Reynosa 7934 Big Donuts 169 0
01/01/2012 2590090-30 Reynosa 7935 Big Donuts 50 0
01/01/2012 2589970-20 Mexico 7936 Bigdonuts 352 0
01/01/2012 2590100-10 Monterrey 7937 Bigdonuts 0 0
01/01/2012 2590090-30 Reynosa 7938 Big Donuts 296 0
01/01/2012 2590090-30 Reynosa 7939 Big Donuts 12 0
01/01/2012 2590080-50 Saltillo 7941 Bigdonuts 64 0
01/01/2012 2590080-50 Saltillo 7942 Bigdonuts 38 0
01/01/2012 2589970-20 Mexico 7944 Bigdonuts 269 0
01/01/2012 2589970-20 Mexico 7945 Bigdonuts 284 0
01/01/2012 2589970-20 Mexico 7946 Bigdonuts 320 0
01/01/2012 2589970-20 Mexico 7954 Bigdonuts 0 0
01/01/2012 2589970-20 Mexico 7969 Bigdonuts 334 0
01/01/2012 2589970-20 Mexico 7970 Bigdonuts 246 0
01/01/2012 2589970-20 Mexico 7971 Bigdonuts 39 0
01/01/2012 2589970-20 Mexico 7972 Bigdonuts 327 0
01/01/2012 2589970-20 Mexico 8071 Bigdonuts 0 0
01/01/2012 2590080-50 Saltillo 8112 Bigdonuts 0 0
01/01/2012 2590080-50 Saltillo 8113 Bigdonuts 0 0
01/01/2012 2590080-50 Saltillo 8114 Bigdonuts 0 0
01/01/2012 2590080-50 Saltillo 8115 Bigdonuts 0 0
01/01/2012 2590080-50 Saltillo 8116 Bigdonuts 0 0
01/01/2012 2590080-50 Saltillo 8117 Bigdonuts 0 0
01/01/2012 2589970-20 Mexico 8212 Bigdonuts 0 0
01/01/2012 2589970-20 Mexico 8453 Bigdonuts 0 0
01/01/2012 2589970-20 Mexico 8454 Bigdonuts 0 0
01/01/2012 2589970-20 Mexico 8456 Bigdonuts 0 0
01/01/2012 2589970-20 Mexico 8457 Bigdonuts 0 0
01/01/2012 2590100-10 Monterrey 68895 Bigdonuts 0 0