我正在尝试显示四个表中的数据。其中三个表构成一对多关系。我需要根据共享的 suit_id 对某些数据进行分组,并且我需要能够对来自不同表的字段进行自由排序。我还需要能够对来自不同表的多个字段进行排序。
- 数据代表法庭记录中的法律案件(诉讼)。
- 对于每件西装,可能有很多派对。
- 任何一方将只收取一项费用,并且该 party_type 将是“被告”。
数据库结构:
!突出显示的是我需要排序的字段。可能不需要 suit_id 与 parent_suit_id 的内部关系。我添加它以进行测试。
以下是我当前的查询,它返回正确的数据。数据按 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 |
+---------+-------------+----------+------------------+-----------+-------------+
我希望能够按名称和charge_code 排序,同时保持suit_id 的正确分组。