php mysql按优先级和排名排序
我有下表:php mysql按优先级和排名排序,php,mysql,Php,Mysql,我有下表: 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
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
我已在代理表中定义了每个代理的优先级:
现在我想根据排名和优先级从properties表中提取行。我想从第一机构提取第一行,从第二机构提取第一行,从第三机构提取第一行,依此类推
然后是第一机构的第二排、第二机构的第二排、第三机构的第二排,依此类推
然后我想根据每个机构的优先级对整个结果进行排序。我使用了以下条款,但没有达到预期效果
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
根据代理表和等级中定义的优先级。请检查加入的条件 查询必须
连接这两个表
select
properties.id,
properties.agency_id,
IF(@prev <> properties.agency_id, @cnt := 1, @cnt := @cnt + 1) AS rank,
@prev := properties.agency_id,
properties.refno
FROM properties
INNER JOIN agency ON properties.agency_id = agency.agency_id
order by agency.priority, rank
选择
properties.id,
properties.agent_id,
如果(@prev properties.agency_id,@cnt:=1,@cnt:=@cnt+1)作为秩,
@prev:=properties.agent\u id,
properties.refno
从属性
properties.agency\u id=agency.agency\u id上的内部联接代理
按机构、优先级、等级排序
如何为每个属性分配优先级?请记住,SQL表本质上是无序的,因此需要有一个列显式地包含这些信息。您能否提供一个理想情况下希望结果看起来像什么的表?我不确定我是否理解这个问题……您缺少了FROM
子句,请添加它并改用JOIN
,但不确定这是否是您要查找的内容。我已在agency表中定义了每个代理的优先级。查询在join中运行良好。我需要的结果如下:agency2 row1 agency3 row1 agency1 row1 agency2 row1 agency3 row1 agency1 row1我已经使用了连接,但仍然没有显示所需的结果。顺序应如下所示:agency2 row1 agency3 row1 agency1 row1 agency2 row2 agency1 row2 agency2 row3 agency3 row3 agency1 row3等agencytrygroup by AGENTY id
group by by仅显示每个代理的一行。我想显示每组的所有行,直到最后。工作正常。我想根据机构对最新的房产进行排名。我有一个列名“created”,我正在尝试按代理的顺序。优先级,等级,属性。created,但它没有给我想要的结果。我怎样才能做到呢????谢谢,我如何对每个机构的最新添加属性进行排名????请帮忙。我有一个日期字段,我试图使用它的顺序创建描述。但它不工作。请帮忙
select
properties.id,
properties.agency_id,
IF(@prev <> properties.agency_id, @cnt := 1, @cnt := @cnt + 1) AS rank,
@prev := properties.agency_id,
properties.refno
FROM properties
INNER JOIN agency ON properties.agency_id = agency.agency_id
order by agency.priority, rank