【问题标题】:How to compare fields from different tables如何比较不同表中的字段
【发布时间】:2013-10-15 21:15:11
【问题描述】:

我想从表(产品)中选择行,但该表使用 JOIN 语句链接到另一个表(库存)。

在 products 表中有 2 个重要字段,SKU 和 minimum_stock。 库存表中有 SKU(与产品的关系)和数量

现在,我只想在表 stock 存在 SKU 并且 qty > minimum_stock from products 时从产品中选择行。

像这样:

SELECT * 
FROM products
INNER JOIN stock ON products.SKU = stock.SKU
WHERE products.minimum_stock.value > stock.qty.value;

显然这段代码不起作用。

有人可以帮帮我吗?

提前致谢。

【问题讨论】:

  • products.minimum_stock.value 将被解释为数据库products,表minimum_stock,字段value。由于您从productosstock 中进行选择,因此您正在使用不存在的表/字段。
  • 这里的 .value 是什么?删除它

标签: mysql join field conditional


【解决方案1】:

如果您的表格如下所示:

产品:

  • SKU
  • minimum_stock
  • (...其他列...)

库存

  • SKU
  • 数量
  • (...其他列...)

您的查询不必将 .value 放在列的末尾。事实上,这就是让它不起作用的原因。

执行以下操作:

SELECT * 
FROM products
INNER JOIN stock ON products.SKU = stock.SKU
WHERE products.minimum_stock > stock.qty;

SQL Fiddle Demo

【讨论】:

  • 好吧,我认为它会更复杂,非常感谢,现在我的代码可以工作了。
  • @艾伦。伟大的。如果您觉得这个答案有帮助,请考虑 accepting it as correct
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多