MySQL-连接计数给定的结果不正确

MySQL-连接计数给定的结果不正确,mysql,Mysql,我有以下疑问: SELECT count(a.users_id) as count FROM user_jobs_application a join job_shifts s on s.id = a.job_shift_id where s.jobs_id = 29 and a.status = 1 group by a.users_id 在这种情况下,计数应该是1,但我得到4。我假设这是因为连接-当我执行此查询时: SELECT * FROM

我有以下疑问:

SELECT count(a.users_id) as count
  FROM user_jobs_application a
  join job_shifts s
    on s.id = a.job_shift_id
 where s.jobs_id = 29
   and a.status = 1
 group 
    by a.users_id
在这种情况下,计数应该是1,但我得到4。我假设这是因为连接-当我执行此查询时:

  SELECT *
    FROM user_jobs_application a
    join job_shifts s
      on s.id = a.job_shift_id
   where s.jobs_id = 29
     and a.status = 1
我得到4行:

<row>
        <field name="users_id">15</field>
        <field name="job_shift_id">246</field>
        <field name="status">1</field>
        <field name="comment"></field>
        <field name="created_at">2020-11-19 06:08:50</field>
        <field name="updated_at">2020-11-19 06:08:50</field>
        <field name="id">58</field>
        <field name="id">246</field>
        <field name="jobs_id">29</field>
        <field name="status">1</field>
        <field name="shift_date">2020-11-23</field>
        <field name="from">08:00:00</field>
        <field name="to">16:00:00</field>
        <field name="duration">1</field>
        <field name="created_at">2020-11-19 05:32:48</field>
        <field name="updated_at">2020-11-19 05:33:44</field>
    </row>

    <row>
        <field name="users_id">15</field>
        <field name="job_shift_id">247</field>
        <field name="status">1</field>
        <field name="comment"></field>
        <field name="created_at">2020-11-19 06:08:50</field>
        <field name="updated_at">2020-11-19 06:08:50</field>
        <field name="id">59</field>
        <field name="id">247</field>
        <field name="jobs_id">29</field>
        <field name="status">1</field>
        <field name="shift_date">2020-11-24</field>
        <field name="from">08:00:00</field>
        <field name="to">16:00:00</field>
        <field name="duration">1</field>
        <field name="created_at">2020-11-19 05:32:48</field>
        <field name="updated_at">2020-11-19 05:33:44</field>
    </row>

    <row>
        <field name="users_id">15</field>
        <field name="job_shift_id">248</field>
        <field name="status">1</field>
        <field name="comment"></field>
        <field name="created_at">2020-11-19 06:08:50</field>
        <field name="updated_at">2020-11-19 06:08:50</field>
        <field name="id">60</field>
        <field name="id">248</field>
        <field name="jobs_id">29</field>
        <field name="status">1</field>
        <field name="shift_date">2020-11-25</field>
        <field name="from">08:00:00</field>
        <field name="to">16:00:00</field>
        <field name="duration">1</field>
        <field name="created_at">2020-11-19 05:32:48</field>
        <field name="updated_at">2020-11-19 05:33:44</field>
    </row>

    <row>
        <field name="users_id">15</field>
        <field name="job_shift_id">249</field>
        <field name="status">1</field>
        <field name="comment"></field>
        <field name="created_at">2020-11-19 06:08:50</field>
        <field name="updated_at">2020-11-19 06:08:50</field>
        <field name="id">61</field>
        <field name="id">249</field>
        <field name="jobs_id">29</field>
        <field name="status">1</field>
        <field name="shift_date">2020-11-26</field>
        <field name="from">08:00:00</field>
        <field name="to">16:00:00</field>
        <field name="duration">1</field>
        <field name="created_at">2020-11-19 05:32:48</field>
        <field name="updated_at">2020-11-19 05:33:44</field>
    </row>
结果:

<row>
        <field name="users_id">15</field>
        <field name="job_shift_id">246</field>
        <field name="status">1</field>
        <field name="comment"></field>
        <field name="created_at">2020-11-19 06:08:50</field>
        <field name="updated_at">2020-11-19 06:08:50</field>
        <field name="id">58</field>
        <field name="id">246</field>
        <field name="jobs_id">29</field>
        <field name="status">1</field>
        <field name="shift_date">2020-11-23</field>
        <field name="from">08:00:00</field>
        <field name="to">16:00:00</field>
        <field name="duration">1</field>
        <field name="created_at">2020-11-19 05:32:48</field>
        <field name="updated_at">2020-11-19 05:33:44</field>
    </row>

这里的问题是什么?我做错了什么?

与GROUP BY一起使用的COUNT函数提供分组前的行总数。使用SELECT COUNTs.id时,结果相同。如果您想知道字段的唯一值的计数,可以使用DISTINCT修饰符,如下所示:选择countDISTINCT a.users_id as count

您是说添加ORDER BY会改变结果中的行数吗?如果使用ORDER BY而不使用count,则会给出正确的结果数,在这种情况下为一行。但是当我使用**countuser\u jobs\u application.users\u id作为count count count而不是SELECT***时,count count将是4,这是不正确的count需要是1如果你说你的第二次和第三次查询产生了不同数量的行-提供…和/或@PM77-1我在这里输入了错别字-我的意思是分组,不是按顺序-问题仍然是一样的-如何获得正确的计数?我不相信你的第一个陈述是准确的。
<row>
        <field name="users_id">15</field>
        <field name="job_shift_id">246</field>
        <field name="status">1</field>
        <field name="comment"></field>
        <field name="created_at">2020-11-19 06:08:50</field>
        <field name="updated_at">2020-11-19 06:08:50</field>
        <field name="id">58</field>
        <field name="id">246</field>
        <field name="jobs_id">29</field>
        <field name="status">1</field>
        <field name="shift_date">2020-11-23</field>
        <field name="from">08:00:00</field>
        <field name="to">16:00:00</field>
        <field name="duration">1</field>
        <field name="created_at">2020-11-19 05:32:48</field>
        <field name="updated_at">2020-11-19 05:33:44</field>
    </row>