gpt4 book ai didi

mysql - 查询 : I dont understand this piece of code

转载 作者:行者123 更新时间:2023-11-29 04:22:49 25 4
gpt4 key购买 nike

我想寻求帮助来理解这段代码...我是 mysql 的初学者,所以我发现很难阅读这段代码的作用...

SELECT b.bcode
FROM (SELECT bcode FROM tbl_items
UNION
SELECT bcode FROM tbl_items_bulk
) b left outer join
tbl_reservation r
on b.bcode = r.bcode and
@USERTO <= r.ToDate and
@USERFROM >= r.FromDate
WHERE r.bcode is null;

有人能帮我理解这段代码的作用吗?提前致谢!

@Ashutosh Arya,我试图获取所有未在某个日期和时间范围内保留的项目。通过“保留”,设备应该出现在 tbl_reservations 中。我只是想获得与在特定日期和时间跨度内获得所有设备相反的结果。

逻辑:

  1. 获取当前存在于 tbl_items 中的所有设备 bcode,tbl_items_bulk(UNION)。
  2. 获取当前存在于 tbl_reservations 中的所有设备 bcode,并查看是否与 1 号中的 UNION 匹配。
  3. 如果有匹配项,则使用 resDate(预订日期)进一步过滤结果。**这导致不显示所有具有用户指定的 resDate 的 bcode。
  4. 如果仍有匹配项,则使用 timeSTART 和 timeEND 进一步过滤结果。

意思是,- 如果 tbl_reservations 中存在设备 bcode,请不要显示它。-如果设备 bcode 存在于 tbl_reservations 中,但没有用户将指定的 resDate,则显示它。- 如果设备 bcode 存在于 tbl_reservations 中,具有用户将指定的 resDate,但没有 timeStart 和 timeEnd 涵盖的时间,则显示它。

我的代码似乎只检查日期。我也在考虑检查日期和时间的东西,比如:

SELECT b.*
FROM (SELECT * FROM tbl_items
UNION
SELECT * FROM tbl_items_bulk
) b left outer join
tbl_test t
on b.bcode = t.bcode and
'2013-09-16' = t.resDate AND
'9:30' <= t.timeSTART AND
'7:00' >= t.timeEND
WHERE t.bcode is null;

此外,我的系统不允许长期借用设备。任何人都不能借用超过 7:00AM-9:00PM(15 小时)的设备。

这是最新的代码(timeFROM 和 timeTO 更改为 timeSTART 和 timeEND 因为我的系统不允许一天超过 15 小时的预订并且不允许超过 1 天的预订):

SELECT b.*
FROM (SELECT * FROM tbl_items
UNION
SELECT * FROM tbl_items_bulk
) b left outer join
tbl_test t
on b.bcode = t.bcode and
NOT ('4:30' < t.timeSTART OR '7:00' > t.timeEND)
WHERE t.bcode is null;

最佳答案

好的,我会尽力解释,希望你能理解;

SELECT b.bcode                     // Selecting the bCode from tbl_items and tbl_items_bulk
FROM (SELECT bcode FROM tbl_items
UNION
SELECT bcode FROM tbl_items_bulk
) b left outer join // join to tbl_reservation where the bcode is equal and in
a given timespan (USERTO & USERFROM are 2 variables
passed from outside)
tbl_reservation r
on b.bcode = r.bcode and
@USERTO <= r.ToDate and
@USERFROM >= r.FromDate
WHERE r.bcode is null; // and where your selected bcode is equal to null

关于mysql - 查询 : I dont understand this piece of code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18842679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com