我有以下表格:
根据机构表和等级中定义的优先级。
Properties
id agency_id refno
1 1 AA101
2 3 AA201
3 2 AA501
4 1 AA762
5 3 AA555
agency
agency_id agency_name priority
1 A 30
2 B 10
3 C 20
我已经在机构表中定义了每个机构的优先级:
现在我想根据排名和优先级从属性表中提取行。 我想从第一个机构提取第一行,从第二个机构提取第一行,从第三个机构提取第一行,以此类推。
然后从第一个机构提取第二行,从第二个机构提取第二行,从第三个机构提取第二行,以此类推。
然后我想根据每个机构的优先级对整个结果进行排序。 我正在使用以下子句,但它没有给出所需的结果:
select properties.id,
properties.agency_id,
IF(@prev <> properties.agency_id, @cnt := 1, @cnt := @cnt + 1) AS rank, @prev := properties.agency_id,
properties.refno
where properties.agency_id = agency.agency_id
order by agency.priority, rank
我已经添加了JOIN,目前没有出现错误。但是我需要按照以下方式获取结果:
我已经在机构表中定义了每个机构的优先级。JOIN查询已经正常工作,但是我需要按照以下方式获取结果:
agency2 row1
agency3 row1
agency1 row1
agency2 row2
agency3 row2
agency1 row2
agency2 row3
agency3 row3
agency1 row3
根据机构表和等级中定义的优先级。
FROM
子句,加上它并使用JOIN
替代,就可以 运行了。但不确定这是否符合你的要求。 - Mahmoud Gamal机构2 第1行 机构3 第1行 机构1 第1行 机构2 第1行 机构3 第1行 机构1 第1行
- Asif Hameed