请您帮我构建单个查询以获取以下方案的产品 -
两个表 - Table_A(产品)和表_B(产品和库存)
我需要从表A中获得表B中没有的所有产品,或者如果它们存在于B中,它们在B中的库存= 0.
以下是我试过的 -
SELECT PROD_ID FROM TABLE_A
WHERE PROD_ID NOT IN (SELECT PROD_ID FROM TABLE_B)
OR PROD_ID IN (SELECT PROD_ID FROM TABLE_B WHERE STOCK = 0)
此查询永远运行,因此我不确定它是否提供了正确的输出。如果它是正确的,我会找到优化性能的方法。
答案 0 :(得分:0)
以下查询中的某些内容应该有效。
select prod_id
from table_a
where prod_id not in (select prod_id from table_b where stock > 0)
;
这假设prod_id
中table_b
被约束为NOT NULL。