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 - Fatal编程技术网

Mysql 如何解释这个警告

Mysql 如何解释这个警告,mysql,Mysql,我正在使用MySQL 5.7.19,在我对以下脚本运行explain之后: explain select a.seller_id AS seller_id, a.seller_name AS seller_name, b.user_name AS user_name, c.state AS state from a join b join c where((b.seller_name = a.seller_name) and (c.us

我正在使用MySQL 5.7.19,在我对以下脚本运行
explain
之后:

explain select a.seller_id AS seller_id, 
       a.seller_name AS seller_name, 
       b.user_name AS user_name, 
       c.state AS state
from a
join b
join c
where((b.seller_name = a.seller_name) and
      (c.user_id = 17) and(b.user_id = 17) and
      (a.gmt_create between ((now() - interval 600 minute)) and ((now() + interval 600 minute)))) 
order by a.gmt_create;
以下是我收到的警告信息:

要将其转换为人类可读的形式:

select a.seller_id AS seller_id, 
           a.seller_name AS seller_name, 
           b.user_name AS user_name, 
           c.state AS state
    from a
    join b
    join c
    where((b.seller_name = a.seller_name) and
          (c.user_id = 17) and(b.user_id = 17) and
          (a.gmt_create between <cache>((now() - interval 600 minute)) and <cache>((now() + interval 600 minute)))) 
    order by a.gmt_create;
选择一个卖方id作为卖方id,
a、 卖方名称作为卖方名称,
b、 用户名作为用户名,
c、 国家作为国家
从
加入b
加入c
其中((b.卖方名称=a.卖方名称)和
(c.user_id=17)和(b.user_id=17)以及
(a.gmt_在((现在()-间隔600分钟))和((现在()+间隔600分钟))之间创建)
按a.gmt\u创建订单;
标签是什么意思???

引用以下内容:

表达式(如标量子查询)执行一次 结果值保存在内存中,供以后使用。为了结果 由多个值组成,可以创建一个临时表并 您将看到


这意味着,你计算<代码> NOW()-间隔600分钟只做一次,结果用于你的WHERE子句检查的每一行。“谢谢”CBroe,你介意回答它吗?我会接受什么警告信息,然后把它当作一个音符或一个信息,而不是一个警告。这没什么不好的,我明白了。我是否可以改进我的查询?我希望解释命令能给我一些建议。我已经没有什么想法了。快速看一眼,您正在与表c进行交叉连接,这可能不是您想要的。将连接条件放在连接子句中,例如,

a连接b.seller\u name=a.seller\u name
,而不是放在where子句中。我不能用这一点信息说更多。用以下信息发布另一个问题:查询、查询解释(实际解释结果,没有人关心警告)、create table语句(对每个表执行
show create table\G
,对每个表执行
show index from;
)。但请回答另一个问题!