HQL inner join - 请简单说明
HQL inner join - please explain in simple terms
在一个HQL教程中,给出了以下例子:
select s.name, p.name, p.price
from Product p inner join p.supplier as s
产品显然是实体之一,看起来它正在加入其供应商 属性,但它加入的是哪个实体以及该实体的 属性 是什么已加入。
请有人给我解释一下。
我理解 SQL,也许我需要范式转换,所以请转换我:-)
目前您的查询不完整,因为您尚未指定您要加入两个 table 的实体。
两个 table 可以这样连接:
select s.name, p.name, p.price
from Product p inner join p.supplier as s
on p.id = s.id --This specifies the entity which you are using to join the table
所以这意味着您的 table 产品和供应商由 table 中存在的 id 列连接(id 可以替换为您的 table 中存在的其他名称table)
或
如果您的 table 定义了一对多关系,那么也是可能的。请注意,HQL 支持两种类型的 JOINS,即隐式和显式。
编辑:(在这里添加我的评论,这样我就可以勾选我正在寻找的答案)
所以在我看来 "underneath" 已经有一个连接并且供应商 属性 已经有了所有这些信息并且连接语法只是说你想使用这个特定的(已经设置)加入。因此,它所连接的实际实体和它所连接的属性都被黑盒化了。我只需要知道未知 table(示例中的名称)上的属性。
在一个HQL教程中,给出了以下例子:
select s.name, p.name, p.price
from Product p inner join p.supplier as s
产品显然是实体之一,看起来它正在加入其供应商 属性,但它加入的是哪个实体以及该实体的 属性 是什么已加入。
请有人给我解释一下。
我理解 SQL,也许我需要范式转换,所以请转换我:-)
目前您的查询不完整,因为您尚未指定您要加入两个 table 的实体。
两个 table 可以这样连接:
select s.name, p.name, p.price
from Product p inner join p.supplier as s
on p.id = s.id --This specifies the entity which you are using to join the table
所以这意味着您的 table 产品和供应商由 table 中存在的 id 列连接(id 可以替换为您的 table 中存在的其他名称table)
或
如果您的 table 定义了一对多关系,那么也是可能的。请注意,HQL 支持两种类型的 JOINS,即隐式和显式。
编辑:(在这里添加我的评论,这样我就可以勾选我正在寻找的答案)
所以在我看来 "underneath" 已经有一个连接并且供应商 属性 已经有了所有这些信息并且连接语法只是说你想使用这个特定的(已经设置)加入。因此,它所连接的实际实体和它所连接的属性都被黑盒化了。我只需要知道未知 table(示例中的名称)上的属性。