【发布时间】:2011-07-01 23:49:11
【问题描述】:
表格:
**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
【问题讨论】:
-
在我看来是正确的,
2010-02-22 10:30出现在2010-02-25 09:30和2010-02-27 11:00之前。 -
好吧,我找不到你想要达到的目标。但是
2010-02-27不能与10:00关联,因为它的timeid 是5,即11:00... -
虽然您在 WHERE 子句中使用它,但您的示例也缺少 booklot 表中的状态列。这可能与它有关吗?
标签: php mysql sql date group-by