我正在使用下面的查询
SELECT SKU, Country FROM Products WHERE SKU NOT IN (SELECT SKU FROM ProductData)只要在ProductData表中找不到SKU,这就会从Products表中返回SKU和国家/地区。
我正在努力实现的下一步是相同的结果,但在ProductData中没有找到SKU和国家。
在下面的示例中,法国和德国的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我相信我也可以使用join来做到这一点,但是我不完全理解它的语法,所以如果有任何帮助,我将不胜感激。
发布于 2019-04-01 19:45:31
可以将Country列添加到IN表达式中:
SELECT SKU, Country
FROM Products
WHERE (SKU, Country) NOT IN (SELECT SKU, Country FROM ProductData)输出:
SKU Country
MySKU1 France
MySKU1 Germany发布于 2019-04-01 19:48:01
您可以使用LEFT join:
SELECT p.SKU, p.Country
FROM Products p LEFT JOIN ProductData d
on d.SKU = p.SKU and d.Country = p.Country
WHERE d.SKU is null or d.Country is null结果:
| SKU | Country |
| ------ | ------- |
| MySKU1 | France |
| MySKU1 | Germany |发布于 2019-04-01 19:57:38
也许是这样的?
SELECT p.SKU, p.Country
FROM Products p
Left outer join ProductData pd on pd.SKU = p.SKU and pd.COUNTRY = p.COUNTRY
WHERE pd.SKU is nullhttps://stackoverflow.com/questions/55454287
复制相似问题