表A:
dvdID…….DVD标题
d01……….复仇者
d02……….复仇者
d03……….蜘蛛侠
表B:
租赁ID…….DVD ID
r01……….d01
r02……….d02
r03……….d03
表C:
returnID…….租用id
t01……………r01
我想选择不在表B(租用)中的dvd,但在表C(返回)中除外
所以输出应该是这样的:
输出:
dvdID…….DVD标题
d01……….复仇者
你能帮我吗?

最佳答案

试试这个,

SELECT *
FROM A
WHERE (NOT EXISTS (SELECT * FROM B WHERE B.dvdID=A.dvdID))
   OR (EXISTS (SELECT * FROM C,B WHERE C.rentID=B.rentID and B.dvdID=A.dvdID))

这里是SQLFiddle

10-06 02:18