执行 SQL 查询

Posted

技术标签:

【中文标题】执行 SQL 查询【英文标题】:Perform a SQL Query 【发布时间】:2019-01-24 03:14:37 【问题描述】:

我在 php mysql PDO 中有这个查询:

SELECT p.las_plano_id, p.mensalidade_diferenciada, v.las_tipos_planos_id, t.valor_mensalidade 
FROM isw_planos AS p 
INNER JOIN isw_planos_vinculos AS v 
ON p.las_plano_id = 
      (SELECT v.las_plano_id 
       FROM isw_planos_vinculos 
       WHERE v.data_encerramento IS NULL 
       ORDER BY v.data_adesao 
       DESC LIMIT 1) 
INNER JOIN isw_planos_tipos AS t 
ON v.las_tipos_planos_id = t.id
WHERE p.ativo = 1

但是..结果会产生很长的延迟..执行此查询是否可以更快地执行?

感谢..

【问题讨论】:

这个问题具体与 PHP/PDO 有关吗?它从mysql 接口做了什么? 为什么不使用UNION? @user3783243 我使用 Mysql 和 PDO ......但这没什么区别,我只是想改进查询 好吧,这对这个问题很重要。您不希望 PDO/PHP 改进。请添加表的架构以及 explain 显示的此查询执行路径的内容。 @Roshan .. UNION 比 INNER JOIN 快?请问我的查询看起来如何? 【参考方案1】:

我怀疑错误与v.有关:

这看起来不对:SELECT v.las_plano_id ... 因为 v 在子查询之外。请检查使用的别名。

如果删除 v. 没有帮助,请提供 SHOW CREATE TABLE 以便我们查看索引等。

【讨论】:

以上是关于执行 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySQL Workbench 中执行多个 SQL 查询?

SQL 查询执行时间、SQL Server、嵌套查询

laravel怎么在连接查询中执行sql语句

如何在执行查询时自动保存oracle SQL查询?

引用:初探Sql Server 执行计划及Sql查询优化

Django框架08 /聚合查询分组F查询和Q查询执行原生sql设置 sql_mode