我正在处理日历系统。我们正在使用德比。 我正在写一个脚本来问(在我看来)一个非常困难的逻辑陈述。 我一直在阅读derbys的说明,但似乎无法找到一些指示。 当我提出逻辑时,我已经使用'Antijoin',看起来德比并不支持这一点。 对我的问题。在下面的图片中。那声明会是什么? 由于Derby不支持'Antijoin',因为我们做了很多其他的查询,所以会更改数据库表。对不起,它不是用英文书写的,但标志是国际性的。我还在比较脚本中的一些变量。逻辑就像它在那里一样,只是我很难在Derby sql中编写它。德比数据库查询
在图中有关系。我不必使用反加入,但不能用另一种方式解决问题。
编辑:有不使用的图片,所以我会解释的问题。 现在它是英文版,所以如果你在我翻译的图片上看到不同的名字。
涉及到两个表格。
房
ROOMNAME numberOfPeople 描述
会议
(还有更多的在这里,但我只会写什么是重要的) ROOMNAME meetingStart meetingEnd
的查询找巫婆房间也可用于会议。
我设计的是,我只会从会议表中选择与您正在尝试创建的房间的新预订相冲突的会议。在我看来,你不能这样做。它看起来像这样: reservationStart> meetingStart和meetingEnd> reservationEnd
然后,我将与所有房间的列表“加入”。这将列出所有可用的房间。问题在于,似乎德比不能抗争。是否有另一种方法与其他连接建立一个反连接?希望你明白我在写
EDIT2:
I'mnot得到任何错误,因为我还没有尝试过任何疑问。我一直在努力做的查询和我得到了什么迄今为止是这样的:
SELECT roomName, numberOfPeople, description FROM ROOM WHERE roomName NOT IN (SELECT roomName, meetingStart, meetingEnd FROM Meeting WHERE reservationEnd > meetingStart AND meetingEnd > reservationStart);
但是从我一直在读什么也没有在德比“NOT IN”。我如何更改查询?
编辑3:
我有查询。我现在得到的错误代码是这样的:
错误42X39:子查询只允许返回一个列。
请发布您正在尝试使用的实际SQL,理想情况下涉及的表的定义(纯文本**不作为屏幕截图) – 2011-03-31 14:42:34
并且还会发布您从德比获得的实际错误。 – 2011-04-01 18:33:25