Hybris 使用三个表的灵活搜索查询

Hybris 使用三个表的灵活搜索查询,hybris,Hybris,我有三张桌子:订单、客户、地址 编辑: 我想获取所有在网站上注册的客户。 如果客户下了任何订单,我想从订单列表中获取最新订单, 如果客户尚未下订单,则我希望将字段设置为空白,如下表所示 For eg : Customer_Name Email ID Country Phone Latest_Order_Code A xxxx xxxx x 1234 B

我有三张桌子:订单、客户、地址

编辑:


我想获取所有在网站上注册的客户。 如果客户下了任何订单,我想从订单列表中获取最新订单, 如果客户尚未下订单,则我希望将字段设置为空白,如下表所示

For eg :

       Customer_Name   Email ID   Country   Phone   Latest_Order_Code
       A               xxxx        xxxx     x       1234 

       B               yyyy        yyyy     y

       C               ffff        tttt     l       3456

       D               zzzz        iiii     o

如果您有任何帮助,我们将不胜感激。

请参考下面的查询,在这里我只能获取订单代码和客户名称。您可以根据需要编写更多的联接和选择字段

select {o.code} as orderCode,
       {c.name} as name,
       {a.cellphone} as cellphone

from   {order as o 
        join Customer as c on {c.pk} = {o.user} 
        join Address as a on {o.deliveryaddress} = {a.pk}
       } 

       where {o.code} in ({{select max({code}) from {order} group by {user}}})

更新:获取所有注册客户及其上次订单信息

详细帖子如何使用这种方法连接三个表?我也想连接地址表?参考我连接客户的方式,您可以再添加一个连接(地址)。我会尽快更新我的帖子。我们可以获得所有注册客户的名单,以及最后订单的日期。如果客户没有订单,此选项必须为空?我没有收到您的订单。你能详细说明一下吗?我想把所有在网站上注册的客户都找回来。如果客户下了任何订单,我想从订单列表中获取最新订单,如果客户没有下任何订单,那么我想将该字段设置为空白,如表@hybrisfeloper所示,请查看我上面编辑的帖子
select t1.name, t2.orderCode, t2.cellphone

from 

({{
  select {pk} as userPk, {name} as name from {Customer}
}}) as t1

LEFT JOIN

({{
    select 
       {o.code} as orderCode,
       {o.user} as user,
       {a.cellphone} as cellphone

from   {order as o 
        join Address as a on {o.deliveryaddress} = {a.pk}
       } 

       where {o.code} in ({{select max({code}) from {order} group by {user}}})
}}) as t2

on t2.user = t1.userPk