【问题标题】:MySQL 8 crashes subselect queryMySQL 8 崩溃子选择查询
【发布时间】:2020-03-27 20:32:08
【问题描述】:

为什么这个查询在 MySql 8 中崩溃但在 Mysql 5 中运行良好?

SELECT * 
FROM   `sports` 
WHERE  EXISTS (SELECT *, 
                      (SELECT `id` 
                       FROM   `sport_events` 
                       WHERE  `tournament_id` = `tournaments`.`id` 
                              AND `status` = ? 
                              AND `sport_events`.`deleted_at` IS NULL 
                       ORDER  BY `created_at` DESC 
                       LIMIT  1) AS `live_event_id` 
               FROM   `tournaments` 
               WHERE  `sports`.`id` = `tournaments`.`sport_id`)

导致崩溃的查询部分就是这个嵌套的子选择

(SELECT `id` 
   FROM   `sport_events` 
   WHERE  `tournament_id` = `tournaments`.`id` 
          AND `status` = ? 
          AND `sport_events`.`deleted_at` IS NULL 
   ORDER  BY `created_at` DESC 
   LIMIT  1) AS `live_event_id` 

【问题讨论】:

  • 你能告诉我们你的表架构吗
  • 在准备或执行/打开/获取时是否崩溃?
  • 顺便说一句,EXISTS 可以简化为WHERE EXISTS (SELECT * FROM tournaments WHERE sports.id = tournaments.sport_id)

标签: mysql sql subquery mysql-8.0


【解决方案1】:

您 2 天前在 MySQL Community Slack 中提出了这个问题,您收到了 10 条回复,询问了一些细节。我们还在等待......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多