使用 NamedQuery 进行内部联接?

Posted

技术标签:

【中文标题】使用 NamedQuery 进行内部联接?【英文标题】:Inner Join with NamedQuery? 【发布时间】:2012-06-07 14:42:24 【问题描述】:

我需要从三个不同的表中获取数据并放入一个列表中。我想知道如何使用namedQuery 做到这一点?我已经看到可以通过在线搜索来实现,但我无法让它发挥作用。

SELECT
    Customer.name,
    Customer.adress,
    Orders.date,
    Orders.order_id,
    Product.product_name,
    Product.price
FROM
    Orders
    INNER JOIN Customer ON Customer.customer_id=Orders.customer_id
    INNER JOIN Product ON Product.product_id=Orders.product_id
ORDER BY
    Orders.date

这就是我想要转换为命名查询的内容。如果有人能把我踢向正确的方向,那就太好了。

【问题讨论】:

【参考方案1】:

似乎我对名为查询的术语不熟悉。 但这就是你在 SQL 中的做法

CREATE VIEW view_name AS
SELECT
    Customer.name,
    Customer.adress,
    Orders.date,
    Orders.order_id,
    Product.product_name,
    Product.price
FROM
    Orders
    INNER JOIN Customer ON Customer.customer_id=Orders.customer_id
    INNER JOIN Product ON Product.product_id=Orders.product_id
ORDER BY
    Orders.date

那你就可以这样称呼了

SELECT * FROM view_name

但请注意,视图中的视图对性能很不利。

【讨论】:

以上是关于使用 NamedQuery 进行内部联接?的主要内容,如果未能解决你的问题,请参考以下文章

使用子查询与派生表进行内部联接

使用spark数据帧/数据集/ RDD使用内部联接进行更新

SQL Server 中使用 Sum Aggregate 函数进行内部联接

具有内部列表条件的休眠 NamedQuery

内部联接是不是存在任何性能问题?

SQL Server-交叉联接内部联接基础回顾