mysql - 挂起mysql查询

标签 mysql sql join

我对以下查询有疑问

select
ord.order_id, 
ordProduct.product_id,
coupProd.product_id,
coup.date_end as DateEnd, coup.coupon_id
from `order` ord
inner join order_product ordProduct on ord.order_id = ordProduct.order_id
inner join coupon_product coupProd on ordProduct.product_id = coupProd.product_id
inner join coupon coup on coupProd.coupon_id = coup.coupon_id
where (coup.date_end > curdate());

如果我删除 where 子句,查询将正常执行,否则它就会挂起。有什么想法吗?

最佳答案

这本身不是解决方案,但作为一种解决方法,您可以将其作为嵌套查询来完成。即,

SELECT * FROM (
    SELECT
    ord.order_id, 
    ordProduct.product_id,
    coupProd.product_id,
    coup.date_end AS DateEnd, coup.coupon_id
    FROM `order` ord
    INNER JOIN order_product ordProduct ON ord.order_id = ordProduct.order_id
    INNER JOIN coupon_product coupProd ON ordProduct.product_id = coupProd.product_id
    INNER JOIN coupon coup ON coupProd.coupon_id = coup.coupon_id)
WHERE (DateEnd > CURDATE());

关于mysql - 挂起mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208041/

相关文章:

sql - Oracle SQL : How to use more than 1000 items inside an IN clause

mysql - 连续三个左连接返回意外结果

sql - 如何使用 SQL 按类型获取项目的百分比

php - 无法使用 PHP 请求从 MySQL 表获取数据

android - 如何使用 sqlite 查询获取当前月份或指定月份的日期?

MySQL - 如何通过中间文本/数字匹配查询结果

php - 根据另一列值获取一列的值

linq-to-sql - linq to sql:连接同一表中的多个列

MySql Left Join 查询非常慢

php - 为空白的调用数据库字段分配默认值