【问题标题】:How do I combine these mysql statements我如何组合这些mysql语句
【发布时间】:2016-09-26 11:12:42
【问题描述】:

我目前正在这样做:

    SELECT SS.service_name , SS.id, SH.shortcode FROM smsc_app_db.service SS
 INNER JOIN shortcode SH ON SS.confirmation_shortcode = SH.id;

    SELECT count(service_id) FROM smsc_app_db.service_status 
where smsc_app_db.service_status.service_id = ?;

运行第一个选择后,我在java中得到结果,然后对于ResultSet的每一行,我使用SS.ID值来 在 service_status 表中计算该服务的订阅者数量(使用第二条语句)

但我想将这两个语句合二为一。

是否可以制作 select count(service_id)

第一个选择语句中的列?

例如如果

的结果

select count(service_id).... 存储在subscriber_base

    SELECT SS.service_name , SS.id, SH.shortcode, subscriber_base FROM 
smsc_app_db.service SS INNER JOIN shortcode SH ON SS.confirmation_shortcode = SH.id;

【问题讨论】:

    标签: java mysql sql resultset


    【解决方案1】:

    joinservice_status 表到现有查询并聚合以获取计数。

    SELECT SS.service_name, SS.id, SH.shortcode, count(*) subscriber_base 
    FROM smsc_app_db.service SS 
    INNER JOIN shortcode SH ON SS.confirmation_shortcode = SH.id
    INNER JOIN smsc_app_db.service_status sstat ON sstat.service_id = SS.id
    GROUP BY SS.service_name, SS.id, SH.shortcode
    

    【讨论】:

    • 很好的答案。请将 ON sstat.service_id = ss.id 更改为 ON sstat.service_id = SS.id,以便我可以将此标记为正确答案谢谢!!!
    • 我认为这不会有什么不同。
    • 来吧,因为我测试过它并且确实如此,这就是我要求你改变它的原因。我在 CentOS 上使用 MariaDb,相信我,确实如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多