为了账号安全,请及时绑定邮箱和手机立即绑定

PHP / Postgres 每行一个输出

PHP / Postgres 每行一个输出

PHP
MMTTMM 2022-10-09 20:10:53
我试图为我的语句迭代到的每一行获取一个单行输出,但对于它找到的每个“票证”,它会输出 100 次。在当前 SQL 队列中,只有 4 个可能的票证符合条件。$ticketIdQuery = pg_query($db, "SELECT ticket.assignee_id, ticket.subject FROM ticket INNER JOIN ticket_assignee_mapping ON ticket.assignee_id=ticket_assignee_mapping.assignee_id WHERE status_id = $firstLevelId");if($ticketIdQuery){    while ($ticketIdQueryFetch = pg_fetch_array($ticketIdQuery))    {        print_r($ticketIdQueryFetch);    }}有没有办法将它找到的每一行的输出限制为一个
查看完整描述

1 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

当您的 JOINed 表具有一对多关系并且您只选择有限数量的列时,您看不到为什么会得到如此多的结果。因此,我建议不要使用 DISTINCT,而是使用 GROUP BY 子句来指定您真正感兴趣的列。如果您还在 SELECT 中添加了 COUNT(*),则可以继续调整查询,直到记录计数总计返回的每一行 1。尝试这个:

$ticketIdQuery = pg_query($db, "SELECT ticket.assignee_id, ticket.subject, COUNT(*) FROM ticket INNER JOIN ticket_assignee_mapping ON ticket.assignee_id=ticket_assignee_mapping.assignee_id WHERE status_id = $firstLevelId GROUP BY ticket.assignee_id, ticket.subject");

如果您仍有疑问,请发布ticket 和ticket_assignee_mapping 的表定义。


查看完整回答
反对 回复 2022-10-09
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信