gpt4 book ai didi

php - MySQL multiple join, multiple sort maintain group

转载 作者:行者123 更新时间:2023-11-29 06:48:27 24 4
gpt4 key购买 nike

我正在尝试显示来自四个表的数据。其中三个表构成一对多关系。我需要根据共享的 suit_id 对某些数据进行分组,并且我需要能够自由地对来自不同表的字段进行排序。我还需要能够对来自不同表的多个字段进行排序。

  • 数据代表法庭记录中的法律案件(诉讼)。
  • 对于每件西装,可能有很多方。
  • 任何给定的一方都只会受到一项指控,party_type 将为“被告”。

数据库结构:

! Highlighted are the fields that I need to sort on.The internal relation of suit_id to parent_suit_id may not be needed. I added it for testing.

以下是我当前的查询,它返回正确的数据。数据按 suit_id 正确分组,但排序已关闭,我的查询不允许我控制排序。

SELECT
s.suit_id,
s.case_number,
p.party_id,
p.name,
c.charge_id,
c.charge_code
FROM suit_party sp
LEFT JOIN suit s
ON sp.suit_id = s.suit_id
LEFT JOIN (
SELECT pp.* FROM party pp
WHERE pp.party_type != 'Bond Entity'
ORDER BY pp.last_name DESC
) p
ON sp.party_id = p.party_id
LEFT JOIN charge c
ON p.party_id = c.party_id
WHERE p.party_id IS NOT NULL
GROUP BY sp.party_id, sp.suit_id

示例输出

+---------+-------------+----------+------------------+-----------+-------------+
| suit_id | case_number | party_id | name | charge_id | charge_code |
+---------+-------------+----------+------------------+-----------+-------------+
| 1 | 66519GE | 1 | Trouble, Tony T. | 1 | 262061253 |
| 1 | 66519GE | 2 | Law, Officer | NULL | NULL |
| 2 | 2013A262076 | 3 | Bad, Bobby B. | 2 | 0528 |
| 2 | 2013A262076 | 5 | Police, Peter | NULL | NULL |
| 3 | A357654KK | 6 | Krook, Kimberly | 3 | 2143 |
| 3 | A357654KK | 7 | Crime, Capn | NULL | NULL |
| 4 | B357654KK | 8 | Krook, Kimberly | 4 | 0660 |
| 4 | B357654KK | 9 | Law, Officer | NULL | NULL |
+---------+-------------+----------+------------------+-----------+-------------+

我希望能够按名称和收费代码排序,同时保持 suit_id 的正确分组。

http://www.sqlfiddle.com/#!2/e6daf9

最佳答案

order by 的问题在于您包含了 sp.party_id。该对唯一地定义每一行,因此不需要其他排序标准。

我认为这会解决您的问题:

order by sp.suit_id, p.name, c.charge_code

关于php - MySQL multiple join, multiple sort maintain group,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17245805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com