说我拥有一家服装店或者其他很长的东西。
tableA保存着装的信息。
tableB保存有关hirage的信息。
我正在尝试编写一个查询,以检查服装是否可以租用。
我可以使用以下方法查找以前租过的所有服装:
SELECT * FROM tableA WHERE条形码NOT IN(SELECT条形码FROM tableB)
并检查已经回到商店的当前租金:
SELECT * FROM tableB WHERE dueBack< ('输入电流最新&#39);
但我仍然坚持如何结合这些查询,或者这是否是查看/查找当前存储的所有服装的正确方法?
答案 0 :(得分:1)
如果您想查看TableA中哪些项目未租借,您可以将问题重新显示为哪些项目没有当前日期所在的租借期
在SQL中表示,它将是一个使用带有相关子查询的否定exists
谓词的查询,如下所示:
select * from TableA a
where not exists (
select *
from TableB b
where b.barcode = a.barcode
and now() between hiredOn and dueBack
)
还有很多其他方法可以达到相同的结果,但我认为这很符合问题的语义。
答案 1 :(得分:0)
或者只使用联接
select a.* from TableA a
left join TableB b
on b.barcode = a.barcode
and now() between hiredOn and dueBack
where b.barcode is null;