桌子:
**timeslot**: ---------- id_timeslot times 1 09:00 2 09:30 3 10:00 4 10:30 5 11:00 **bookslot** id id_timeslot date b_ref ------------------------------------------- 1 2 2010-02-22 001 2 3 2010-02-22 001 3 4 2010-02-22 001 4 5 2010-02-22 001 5 2 2010-02-25 002 6 3 2010-02-27 003 7 4 2010-02-27 003 8 5 2010-02-27 003
的PHP
$q = $mysqli->query("SELECT * FROM bookslot LEFT JOIN timeslot ON bookslot.id_timeslot = timeslot.id_timeslot WHERE bookslot.status = 1 GROUP BY bookslot.b_ref ORDER BY bookslot.date ASC, bookslot.id_timeslot ASC LIMIT 20");
HTML结果:
DATE TIMES 2010-02-22 10:30 2010-02-25 09:30 2010-02-27 11:00
任何人都注意到桌上的结果。时代是不正确的顺序? 我改变了另一种方式与ASC / DESC,仍然显示最后一个id_timeslot的时间吗?
预期结果:
DATE TIMES 2010-02-22 09:30 2010-02-25 09:30 2010-02-27 10:00
您GROUP BY bookslot.b_ref正在对记录进行分组,因此每种情况下您只会看到最后一次。
GROUP BY bookslot.b_ref
尝试使用
SELECT date, time, MIN(bookslot.id_timeslot) FROM bookslot LEFT JOIN timeslot ON bookslot.id_timeslot = timeslot.id_timeslot WHERE bookslot.status = 1 GROUP BY bookslot.b_ref ORDER BY bookslot.date ASC, bookslot.id_timeslot ASC LIMIT 20