【问题标题】:Keeping Records That Are Not Joined MYSQL保留未加入 MYSQL 的记录
【发布时间】:2018-05-15 13:30:23
【问题描述】:

我的应用程序中有以下查询:

SELECT
p.old_product_id,
l.product_id,
p.sku,
p.title,
p.option_one,
p.option_two,
FROM
lookup_id l
JOIN temp_price_tables_data p USING (sku);

而且效果很好。但是,temp_price_tables_data 表中的一小部分记录没有出现在结果中。

这是因为 lookup_id 表中的 sku 不存在于 temp_price_tables_data 中。

有没有办法将这些记录保存在新数据中?

或者有没有办法只获取这些记录,以便我可以存储结果以供以后处理?

编辑:

第一个表列 = old_product_id、sku、title、option_one、option_two

第二个表列 = product_id, sku

表应该有共同的 SKU。

【问题讨论】:

  • LEFT JOIN/RIGHT JOIN
  • 什么是“新数据”?

标签: mysql


【解决方案1】:

使用左外连接:

SELECT
*
FROM
lookup_id l
LEFT OUTER JOIN price_tables_data p on l.sku = p.sku
WHERE old_product_id IS NULL;

这将为您提供 temp_price_tables_data 中但不在 lookup_id 中的所有记录

【讨论】:

  • 不幸的是,这些表都没有 product_id 字段所以这不起作用,我在 OP 中添加了列
  • 我知道了,感谢您的帮助,我将针对这种情况使用更改的解决方案编辑您的答案,谢谢:)
  • 我明白了。我没有意识到这一点。感谢您的编辑。 (我最初拒绝了编辑 - 我不知道是你。但现在我把它改回了你的编辑)。
猜你喜欢
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
  • 2012-09-28
  • 2016-12-13
  • 2019-09-10
  • 1970-01-01
  • 2020-11-07
  • 2013-12-31
相关资源
最近更新 更多