我目前正在使用以下查询

SELECT SKU, Country FROM Products WHERE SKU NOT IN (SELECT SKU FROM ProductData)


只要在ProductData表中找不到SKU,这就会从我的“产品”表中返回SKU和“国家/地区”。

我接下来要努力实现的结果是相同的,但是在ProductData的一行中找不到SKU和Country。

在以下示例中,法国和德国的ProductData表中缺少MySKU1,但是由于存在MySKU1,因此我当前的查询将不返回它们。因此,我需要以某种方式添加第二个字段。

Products TABLE
--------------
MySKU1 UK
MySKU1 France
MySKU1 Germany
MySKU2 UK
MySKU2 France
MySKU2 Germany


ProductData TABLE
--------------
MySKU1 UK
MySKU2 UK
MySKU2 France
MySKU2 Germany


我相信我也可以通过联接来做到这一点,但我还不完全理解语法,因此不胜感激。

最佳答案

您可以将Country列添加到IN表达式中:

SELECT SKU, Country
FROM Products
WHERE (SKU, Country) NOT IN (SELECT SKU, Country FROM ProductData)


输出:

SKU     Country
MySKU1  France
MySKU1  Germany


Demo on dbfiddle

07-26 06:10