2
我試圖按照一些不同的標準對訪問者列表進行排序並陷入困境,因爲我找不出如何執行此操作。與兩個表上的許多標準的mysql訂單
我有一個首先登記的人排隊,並且出於該列表的生成。如果客戶來到門口(通過列表中的號碼呼叫),客戶端會被標記爲「已上架」。如果有人遲到,他必須在名單的末尾。另一件事是,該列表每次都以不同的數字開始。
Day 1 -> List from 1 to 160
Day 2 -> List from 33 to 160, 1 to 32
Day 3 -> List from 65 to 160, 1 to 64
如果有人來得晚,這意味着數後,他已經打電話,他應該被添加到列表的末尾,像1至160,10來晚了,20已經被調用時,它應該是1到160,10。如果有另一個起始號碼,它應該是33到160,1到32,10。這裏的標準是:如果你的號碼後面的placeNr已經被呼叫(shownUp),比你在結束時列表。
表
clients (id, name, placeNr)
visits (id, pid, checkInTime, showedUp, showedUpTime)
選擇
SELECT clients.id AS id, visits.id AS visitId, clients.placeNr AS placeNr, clients.name AS name
FROM clients, visits
WHERE clients.id = visits.pid AND visits.checkInTime >= '1447286401' AND visits.checkInTime <= '1447372799'
ORDER BY clients.placeNr < '1', if(visits.showedUpTime < visits.checkInTime, clients.placeNr, 1), ttc.placeNr
那麼,如何讓陣雨後期在我的名單的末尾? 非常感謝您提前!
兩個表中的示例數據和期望的結果將有助於解釋問題(或更好的SQL提琴)。 –
@Paddy'placeNr' - > expalin這個字段.. –