我有以下表格: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 A 30
2 B 10
3 C 20
我已經定義的代理表中每個機構的優先級:
現在我想提取屬性表中的行基於排名和優先級。我想從第一機構提取第一排,從第二機構提取第一排,從第三機構提取第一排等等。
然後第二排從第1機構,從第2個機構,從3機構第二行等第二排。
然後,我想根據各機構的優先整個結果進行排序。我正在使用以下條款,但它沒有給出所需的結果
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
我已經把連接,它的工作正常沒有錯誤。但我需要的結果如下:
我已經在代理表中定義的每個機構的優先級。該查詢與加入正常工作。我需要的結果如下:
agency2 row1
agency3 row1
agency1 row1
agency2 row2
agency3 row2
agency1 row2
agency2 row3
agency3 row3
agency1 row3
根據代理表中定義的優先級和等級。
如何爲每個屬性分配優先級?請記住,SQL表本質上是無序的,所以需要一個明確包含這些信息的列。 –
你能提供一個你希望結果看起來像理想的表格嗎?我不確定我是否理解這個問題... –
您錯過了'FROM'子句,添加它並使用'JOIN'代替[它將運行](http://www.sqlfiddle.com/#!2/4ea24e/8)但不知道這是你正在尋找或沒有。 –