我試圖為我的語句迭代到的每一行獲取一個(gè)單行輸出,但對于它找到的每個(gè)“票證”,它會(huì)輸出 100 次。在當(dāng)前 SQL 隊(duì)列中,只有 4 個(gè)可能的票證符合條件。$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); }}有沒有辦法將它找到的每一行的輸出限制為一個(gè)
1 回答

有只小跳蛙
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
當(dāng)您的 JOINed 表具有一對多關(guān)系并且您只選擇有限數(shù)量的列時(shí),您看不到為什么會(huì)得到如此多的結(jié)果。因此,我建議不要使用 DISTINCT,而是使用 GROUP BY 子句來指定您真正感興趣的列。如果您還在 SELECT 中添加了 COUNT(*),則可以繼續(xù)調(diào)整查詢,直到記錄計(jì)數(shù)總計(jì)返回的每一行 1。嘗試這個(gè):
$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");
如果您仍有疑問,請發(fā)布ticket 和ticket_assignee_mapping 的表定義。
- 1 回答
- 0 關(guān)注
- 103 瀏覽
添加回答
舉報(bào)
0/150
提交
取消