如果有人可以帮我解决这个问题,我有这些桌子而且我想在两个日期之间获得所有预订,并知道其中任何一个是由其他人完成的还是失败的。
表:预订
id | date | date_end | repeat | day_of_week | user_id | price
---------------------------------------------------------------------
1 2013-07-01 0000-00-00 1 3 1 20
2 2013-07-16 0000-00-00 1 -1 1 10
表:Bookings_done_by_other
id | date | user_id | booking_id
---------------------------------
1 2013-07-01 2 2
2 2013-07-13 2 2
表:Bookings_fail
id | date | booking_id
---------------------------
1 2013-07-01 2
2 2013-07-11 2
表:理货
id
--
1
....
500
这是我的查询,它运行良好,但我无法用它来给我想要的一切。
SELECT f.date as fail, b.id, b.date, a.showdate, DATEDIFF(b.date, a.showdate) AS diff
FROM bookings as b
LEFT JOIN bookings_fail f ON (b.id = f.booking_id and DATE(f.date) = DATE(a.showdate) )
,
(
SELECT DATE_ADD('2013-07-01 00:00:00',INTERVAL Id DAY) as showdate
FROM `tally`
WHERE (DATE_ADD('2013-07-01 00:00:00',INTERVAL Id DAY) <= '2013-07-20 00:00:00')
ORDER BY Id ASC
) a
WHERE
MOD(DATEDIFF(b.date, a.showdate), b.repeat) = 0
AND
DATE(a.showdate)>= DATE(b.date)
什么时候是这样的抛出错误,在左连接中看不到 a.showdate,当我将左连接移动到“a”表旁边时抛出看不到 b.id 的错误,所以有什么方法可以让这个连接工作吗?
我想得到这样的结果
id | showdate | fail | by_other |
-----------------------------
1 2013-07-01 NULL 2
2 2013-07-01 1 NULL //Or date
1 2013-07-03 NULL NULL
1 2013-07-04 NULL NULL
1 2013-07-05 NULL NULL
1 2013-07-06 NULL NULL
.............................
1 2013-07-20 NULL NULL
对不起,如果我的英语不太好,并提前感谢所有可以提供帮助的人。
这里有一些图片希望越来越清楚我无法正确解释我想要什么
这是预订 预订表
这是失败
我不能放置超过 2 个链接,这就是为什么这两个链接就像文本一样,所以当我想获得某个日期的预订时会发生什么我这样做
s16.postimg.org/l00k1math/image.jpg
我想做的是
s12.postimg.org/5o5hbnmdp/image.jpg
但不仅是使用 id 1 进行预订,我不会成为 b.id = un.booking_id ,然后如果有记录无法显示最后一张图片
谢谢你的耐心