WITH RECURSIVE temp AS ( SELECT DISTINCT item_id FROM retailer_item WHERE retailer_id = 'Retailer1' -- 要查找的零售商 UNION ALL SELECT DISTINCT ti.item_id FROM retailer_item ti JOIN temp t ON ti.item_id = t.item_id WHERE ti.retailer_id <> 'Retailer1' -- 非查找的零售商 ) SELECT DISTINCT temp.item_id FROM temp LEFT JOIN retailer_item ri ON temp.item_id = ri.item_id AND ri.retailer_id = 'Retailer1' WHERE ri.item_id IS NULL; -- LEFT JOIN和WHERE语句用于获取不可用的商品
在这个例子中,我们使用了递归查询和LEFT JOIN语句来查找在一个零售商处不可用的商品,但可以在其他零售商处提供的商品。我们首先使用WHERE子句来指定需要查找的零售商,然后使用UNION ALL来获取其他零售商提供的商品。在每次迭代时,我们使用JOIN语句来获取零售商的商品。最后,我们使用LEFT JOIN和WHERE语句来获取不可用的商品,即零售商ID为查找的零售商ID,但ITEM_ID为空的记录。
上一篇:编写一个跳过谓词