在OracleSQL中,我尝试过这样做来获取2010年的输出,只是为了检查一下,它可以工作,但无法同时获得所有的答案
SELECT title FROM books WHERE category IN (SELECT DISTINCT category FROM b_books
JOIN orderitems USING ( isbn )
JOIN orders USING ( order# )
WHERE customer# = 2010) AND isbn NOT IN (SELECT isbn
FROM orders
JOIN orderitems USING ( order# ) WHERE customer# = 2010 );
但我尝试了很多方法,使用"AND"、"逗号"和其他方法同时获得201020112012,但无法获得输出。那么,你能帮我吗?
我试过你的代码,做了一些调整:
SELECT title
FROM books
WHERE category IN (SELECT DISTINCT category
FROM books
JOIN orderitems USING (isbn)
JOIN orders USING (order#)
WHERE customer# = 2010)
AND isbn NOT IN (SELECT DISTINCT isbn
FROM books
JOIN orderitems USING (isbn)
JOIN orders USING (order#)
WHERE customer# = 2010);