Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询有什么问题?慢,并且具有空字段_Mysql_Database_Join_Query Optimization - Fatal编程技术网

MySQL查询有什么问题?慢,并且具有空字段

MySQL查询有什么问题?慢,并且具有空字段,mysql,database,join,query-optimization,Mysql,Database,Join,Query Optimization,在工作中,我必须解决我正在构建的系统的业务需求。这是一家初创公司,所以我戴着几顶帽子。这不是我的专长 在许多其他API中,有一个API,我们必须对销售点系统的MySQL 5.7数据库的API前台数据发出HTTP请求 有一些问题: API不包含很多错误消息,例如语法错误。例如,如果我尝试向结果中添加具有相同名称的键,则会得到521 该API实际上没有文档记录 我们需要在给定日期(即关闭日期)关闭的所有订购商品的销售额。这些信息包含在几个表格中: 订单:包含所有未完成(关闭=0)或已完成(关闭=

在工作中,我必须解决我正在构建的系统的业务需求。这是一家初创公司,所以我戴着几顶帽子。这不是我的专长

在许多其他API中,有一个API,我们必须对销售点系统的MySQL 5.7数据库的API前台数据发出HTTP请求

有一些问题:

  • API不包含很多错误消息,例如语法错误。例如,如果我尝试向结果中添加具有相同名称的键,则会得到521

  • 该API实际上没有文档记录

  • 我们需要在给定日期(即关闭日期)关闭的所有订购商品的销售额。这些信息包含在几个表格中:

  • 订单
    :包含所有未完成(
    关闭=0
    )或已完成(
    关闭=1
    )的订单以及收银台关闭日期(
    关闭日期
    )。它不知道订单是什么,但它有一个小计,以及税收信息和其他与此无关的数据

  • orders\u item
    :包含已订购且与“orders\u item.order\u ID=orders.ID”字段中的订单关联的所有项目

    • 订购物品时,会将
      itemID
      分配给物品。如上所述,订单由`itemID'项组成。每个项目都通过其orderID与订单关联。表示项目的行具有其唯一ID itemPLU。这是必需的信息。此表不知道与订购项目相关的修改(“成分”或“选项”)
  • orders\u options
    :包含一个人对一道菜的选择,比如什么汤,什么甜点。选项与由
    itemID
    字段排序的项目相关联。期权有额外的成本,因为它们是固体物品,需要计入存货,所以我们必须知道

  • orders\u配料
    :包含可以添加到菜肴中的东西,比如比萨饼上的额外奶酪或配料,或者古巴三明治中的辛辣蛋黄酱,而不是普通的。已订购的成分通过
    itemID
    字段与已订购的项目关联

  • 有效结果中的一行看起来像是由在Close_date给定的日期订购的项目组成。返回的列中的值提供了已售出商品的完整记录,商品、选项和成分的唯一标识符(“*****PLU”)将在解析后与我们平台中客户库存数据库中的商品匹配。这些项目具有美元价值,代表要核算的存货

    部分模式 以下是代码本身:

    
    #MySQL 5.7.12
    #请删除脚本末尾创建的对象
    #或者在创建之前检查它们是否存在
    #“\\”是一个分隔符
    选择version()作为“mysql版本”;
    #
    #表结构:订单
    #
    如果存在“订单”,则删除表;
    创建“订单”表(
    `ID`int(11)无符号非空自动增量,
    `Date`datetime不为空,
    `DateClose`datetime不为空,
    `DatePreorder`datetime默认值为空,
    `表_ID`smallint(4)无符号非空默认值0,
    `客户端_ID`smallint(4)未签名非空,
    `用户_ID`smallint(5)未签名非空,
    `交付ID`mediumint(5)未签名不为空,
    `小计`十进制(13,4)不为空,
    `Tax1`十进制(13,4)不为空,
    `Tax2`十进制(13,4)不为空,
    `Tax3`十进制(13,4)不为空,
    `Tax4`十进制(13,4)不为空,
    `Tax5'十进制(13,4)不为空,
    `Tax6`十进制(13,4)不为空,
    `不可征税的`十进制(13,4)不为空,
    `NonSale`十进制(13,4)不为空,
    `进位小数(13,4)不为空,
    `总计`十进制(13,4)不为空,
    `设备'tinyint(2)未签名非空默认值0,
    `客户端名称'varchar(48)校对utf8mb4\u unicode\u ci不为空,
    `Profile_ID`varchar(32)校对utf8mb4_unicode_ci不为空,
    `Bill`tinyint(1)未签名非空默认值0,
    `已完成'tinyint(1)未签名非空默认值0,
    `Closed`tinyint(1)无符号非空默认值0,
    `准备的'tinyint(1)未签名的非空,
    `Close_Date`datetime默认值为空,
    `注意` mediumtext Complate utf8mb4\u unicode\u ci不为空,
    `原因`mediumtext Complate utf8mb4\u unicode\u ci不为空,
    `Void_By`smallint(5)unsigned NOT NULL,
    `IP`tinyint(3)无符号非空默认值0,
    `已删除'tinyint(1)未签名非空默认值0,
    主键(`ID`),
    键'Closed'('Closed'、'Deleted'、'Completed'),
    键'DateClose'('DateClose','Deleted','Completed'),
    使用BTREE键“Table\u ID”(`Table\u ID`、`Deleted`、`Completed`)
    )ENGINE=InnoDB AUTO_INCREMENT=11默认字符集=utf8mb4 COLLATE=utf8mb4_unicode\u ci注释='所有订单信息'
    按范围划分(`ID`)
    (分区'pYear'值小于(5)ENGINE=InnoDB,
    分区'pCurrent'值小于MAXVALUE引擎=InnoDB);
    在“订单”中插入(`ID`、`Date`、`DateClose`、`DatePreorder`、`Table` ID`、`Client` ID`、`User` ID`、`Delivery` ID`、`SubTotal`、`Tax1`、`Tax2`、`Tax3`、`Tax4`、`Tax5`、`Tax6`、`Nosale`、`Tax` Rounding`、`Total`、`Device`、`Device`、`Client`客户名称`、`Profile` ID`、`Bill`、`Completed`、`Closed`、`Tax3`、`Tax0`、`Tax0`、`Date`、`Tax0`、`Tax6`、Note`、`IP`、`IP`、`IP`、`IP`、`IP`、`IP数值(1,'2019-08-10 14:13:48',2020-06-08 04:25:15','2019-08-08 07:38:29',55,0,0,0,0,0,1620.9100','0.0000','0.0000','0.0000','0.0000','0.0000','0.0000','0'fli','0,0,1,0','2020-06-13 22:04:35','Odio minima et blanditiis sunt numquam','0,0,255,0);
    在“订单”中插入(`ID`、`Date`、`DateClose`、`DatePreorder`、`Table` ID`、`Client` ID`、`User` ID`、`Delivery` ID`、`SubTotal`、`Tax1`、`Tax2`、`Tax3`、`Tax4`、`Tax5`、`Tax6`、`Nosale`、`Tax` Rounding`、`Total`、`Device`、`Device`、`Client`客户名称`、`Profile` ID`、`Bill`、`Completed`、`Closed`、`Tax3`、`Tax0`、`Tax0`、`Date`、`Tax0`、`Tax6`、Note`、`IP`、`IP`、`IP`、`IP`、`IP`、`IP数值(2,'2019-10-11 14:14:52,'2019-08-01 16:12:46,'2020-03-10 17:23:23',20,0,0
    
     (SELECT MAX(orders.Close_Date))
    
     (SELECT MAX(Close_Date) FROM orders)
    
    WHERE
        orders.Closed = 1
        AND orders.Deleted=0
        AND orders.Close_Date =
    
    INDEX(Closed, Deleted, Close_Date)   -- in any order
    
    FROM ( SELECT ... ) JOIN ( SELECT ... ) ON ...