質問編集履歴
2
検証用SQL追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -371,3 +371,159 @@
|
|
371
371
|
ただ、こちらの場合は処理にかなり時間がかかってしまい、とても残念な感じです。
|
372
372
|
|
373
373
|
なんとか高速に正しい値が処理出来るようにならないでしょうか。
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
|
380
|
+
|
381
|
+
ちなみに、上記に記載したテーブル構造・データは下記のSQLで構築出来ますので、是非ご検証いただけると助かります。
|
382
|
+
|
383
|
+
※実際には、件数が万件単位になっている場合に処理時間が体感出来るのですが。。
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
```SQL
|
388
|
+
|
389
|
+
--
|
390
|
+
|
391
|
+
-- Table structure for table `buy`
|
392
|
+
|
393
|
+
--
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
DROP TABLE IF EXISTS `buy`;
|
398
|
+
|
399
|
+
CREATE TABLE `buy` (
|
400
|
+
|
401
|
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
402
|
+
|
403
|
+
`product_id` int(11) NOT NULL,
|
404
|
+
|
405
|
+
`qty` int(11) DEFAULT NULL,
|
406
|
+
|
407
|
+
`is_back` tinyint(4) DEFAULT '0',
|
408
|
+
|
409
|
+
`datetime` datetime DEFAULT NULL,
|
410
|
+
|
411
|
+
PRIMARY KEY (`id`)
|
412
|
+
|
413
|
+
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
|
414
|
+
|
415
|
+
|
416
|
+
|
417
|
+
--
|
418
|
+
|
419
|
+
-- Dumping data for table `buy`
|
420
|
+
|
421
|
+
--
|
422
|
+
|
423
|
+
|
424
|
+
|
425
|
+
LOCK TABLES `buy` WRITE;
|
426
|
+
|
427
|
+
/*!40000 ALTER TABLE `buy` DISABLE KEYS */;
|
428
|
+
|
429
|
+
INSERT INTO `buy` VALUES (1,1,5,0,'2018-10-10 00:00:00'),(2,2,3,0,'2018-10-10 00:00:00'),(3,3,10,0,'2018-10-10 00:00:00'),(4,1,2,1,'2018-10-10 00:00:00'),(5,2,1,1,'2018-10-10 00:00:00'),(6,3,8,1,'2018-10-10 00:00:00'),(7,1,1,0,'2018-10-10 00:00:00');
|
430
|
+
|
431
|
+
/*!40000 ALTER TABLE `buy` ENABLE KEYS */;
|
432
|
+
|
433
|
+
UNLOCK TABLES;
|
434
|
+
|
435
|
+
|
436
|
+
|
437
|
+
--
|
438
|
+
|
439
|
+
-- Table structure for table `product`
|
440
|
+
|
441
|
+
--
|
442
|
+
|
443
|
+
|
444
|
+
|
445
|
+
DROP TABLE IF EXISTS `product`;
|
446
|
+
|
447
|
+
CREATE TABLE `product` (
|
448
|
+
|
449
|
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
450
|
+
|
451
|
+
`name` varchar(45) DEFAULT NULL,
|
452
|
+
|
453
|
+
`price` int(11) DEFAULT NULL,
|
454
|
+
|
455
|
+
PRIMARY KEY (`id`)
|
456
|
+
|
457
|
+
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
|
458
|
+
|
459
|
+
|
460
|
+
|
461
|
+
--
|
462
|
+
|
463
|
+
-- Dumping data for table `product`
|
464
|
+
|
465
|
+
--
|
466
|
+
|
467
|
+
|
468
|
+
|
469
|
+
LOCK TABLES `product` WRITE;
|
470
|
+
|
471
|
+
/*!40000 ALTER TABLE `product` DISABLE KEYS */;
|
472
|
+
|
473
|
+
INSERT INTO `product` VALUES (1,'商品1',100),(2,'商品2',200),(3,'商品3',300);
|
474
|
+
|
475
|
+
/*!40000 ALTER TABLE `product` ENABLE KEYS */;
|
476
|
+
|
477
|
+
UNLOCK TABLES;
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
--
|
482
|
+
|
483
|
+
-- Table structure for table `sell`
|
484
|
+
|
485
|
+
--
|
486
|
+
|
487
|
+
|
488
|
+
|
489
|
+
DROP TABLE IF EXISTS `sell`;
|
490
|
+
|
491
|
+
CREATE TABLE `sell` (
|
492
|
+
|
493
|
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
494
|
+
|
495
|
+
`product_id` int(11) NOT NULL,
|
496
|
+
|
497
|
+
`qty` int(11) DEFAULT NULL,
|
498
|
+
|
499
|
+
`is_back` tinyint(4) DEFAULT '0',
|
500
|
+
|
501
|
+
`datetime` datetime DEFAULT NULL,
|
502
|
+
|
503
|
+
PRIMARY KEY (`id`)
|
504
|
+
|
505
|
+
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
|
506
|
+
|
507
|
+
|
508
|
+
|
509
|
+
--
|
510
|
+
|
511
|
+
-- Dumping data for table `sell`
|
512
|
+
|
513
|
+
--
|
514
|
+
|
515
|
+
|
516
|
+
|
517
|
+
LOCK TABLES `sell` WRITE;
|
518
|
+
|
519
|
+
/*!40000 ALTER TABLE `sell` DISABLE KEYS */;
|
520
|
+
|
521
|
+
INSERT INTO `sell` VALUES (1,1,2,0,'2018-10-10 00:00:00'),(2,2,1,0,'2018-10-10 00:00:00'),(3,3,3,0,'2018-10-10 00:00:00'),(4,1,1,1,'2018-10-10 00:00:00'),(5,2,1,1,'2018-10-10 00:00:00'),(6,3,1,1,'2018-10-10 00:00:00');
|
522
|
+
|
523
|
+
/*!40000 ALTER TABLE `sell` ENABLE KEYS */;
|
524
|
+
|
525
|
+
UNLOCK TABLES;
|
526
|
+
|
527
|
+
|
528
|
+
|
529
|
+
```
|
1
tag追加
test
CHANGED
File without changes
|
test
CHANGED
File without changes
|