mysql - 为什么这样查询会报错
高洛峰
高洛峰 2017-04-17 13:53:37
[MySQL讨论组]
SELECT
    o.user_id,o.audittime,
    o.shop_name,
    (
        SELECT
            count(pay_count)
        FROM
            ot_payment_history AS p
        WHERE
            o.user_id = p.pay_user_id
        AND o.order_id = p.pay_order_id
    ) AS f
FROM
    ot_mall_order AS o
WHERE
    and (((1462531924 - (o.audittime + (f * 60*60*24*30))) / 60*60*24) - 30 ) > 0

错误: [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and (((1462531924 - (o.audittime + (f 60602430))) / 606024) - 30 ) > 0' at line 16

去掉f * 能正确返回数据

order order_id表 去关联 P表的pay_order_id , 统计Pay表 pay_count 相加 然后用 order 表的 audittime 减去 pay_count相加的值

order 表


pay 表

这条sql怎么写

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
黄舟
  1. whereand不能连在一起吧?

  2. f是字段别名。字段别名只能在order by中使用,不能在where子句中使用。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号