【问题标题】:Match all values in a join view table匹配连接视图表中的所有值
【发布时间】:2026-01-10 08:15:02
【问题描述】:

我有以下代码,我从两个表中创建了一个视图。我从每个表中选择几列。我试图从两个表的所有匹配项中获取来自inventory.location_xinventory.location_y 的值。但是,它只选择一个。它应该返回至少 3 份值。

有人可以帮助我吗?

CREATE VIEW summary AS ( 
    SELECT contexts, description, SKU, inventory.location_x, inventory.location_y    
    FROM inventory 
    LEFT JOIN product on inventory.epc_hex = product.epc having max(inventory.cycle)
);

这里有一个链接可以找到两个表的示例和所需的输出:

https://www.dropbox.com/sh/k2imnxkqu412mp3/AABeIjgPUflPm8yx9nvr_uida?dl=0

【问题讨论】:

  • 您可能想在您的问题中添加一些示例数据、表结构和所需/预期的输出(您可以使用编辑功能);没有这些信息,很难为您提供帮助。

标签: mysql join view having


【解决方案1】:

在您的查询中,您使用的是“having”子句,而没有在 sql 的 select 部分中指定任何聚合函数。

尝试删除having子句,您将获得更多记录。请尝试以下操作:

CREATE VIEW summary AS ( 
    SELECT contexts, description, SKU, inventory.location_x, inventory.location_y    
FROM inventory 
LEFT JOIN product on inventory.epc_hex = product.epc
);

以下网页提供了有关如何使用 having 子句的示例: http://dev.mysql.com/doc/refman/5.0/en/group-by-handling.html

【讨论】:

  • 他的SQL有几个问题。与其链接到外部资源(尤其是 one known for its inaccuracies),不如考虑使用您自己的代码演示解决方案。
  • 感谢 Abraham B。我已经尝试过这个查询,但它确实提供了更多记录,但更多。我只想获取与相等条件匹配的产品表的每个样本的最后记录。你能给我一个例子吗?劳尔
最近更新 更多