我有两个表:
办公时间
工作日 | 打开 | 关闭 | |
---|---|---|---|
星期一 | 16:00 | 19:00 | 1 |
星期二 | 08:00 | 11:00 | <1>|
星期二 | 15:00 | 19:00 | 2 |
星期四 | 16:00 | 19:00 | 1 |
周五 | 08:00 | 10:00 | <1>|
周五 | 15:00 | 19:00 | 2 |
周六 | 08:00 | 11:00 | //tr>
- 您从未告诉SQL将表officehour打开为"a">
- 您从未告诉SQL打开以"b"关闭的表
这是声明。
$hours = DB::select("SELECT * FROM officehour AS a LEFT OUTER JOIN closed AS b ON a.doc_id = b.doc_id WHERE date_format(b.closed_date,'W%') = a.weekday");
dd($hours);
您需要LEFT
联接和ON
子句中的日期条件:
SELECT *
FROM officehour o LEFT JOIN closed c
ON o.doc_id = c.doc_id AND date_format(c.closed_date,'%W') = o.weekday;
请参阅演示