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这个字段.. –