首頁 > 資料庫 > mysql教程 > 如何在 Node.js 中使用 Sequelize 執行不同類型的聯結?

如何在 Node.js 中使用 Sequelize 執行不同類型的聯結?

Patricia Arquette
發布: 2024-11-18 01:55:02
原創
1013 人瀏覽過

How can I perform different types of joins using Sequelize in Node.js?

在Node.js 上使用Sequelize 加入查詢

Sequelize 是Node.js 的物件關聯映射(ORM) 庫,可簡化資料庫互動。它允許您在 JavaScript 物件中定義資料庫模型,並使用熟悉的語法執行查詢。

連接查詢

連接查詢用於基於多個表組合資料共同標準。在 Sequelize 中,您可以使用 findAll 或 findOne 方法中的 include 屬性執行聯結查詢。

Inner Join

要執行內部聯接,請在中設定所需的屬性include 選項設為 true。這將確保僅傳回連接表中具有符合值的記錄。

Posts.findAll({
  include: [{
    model: User,
    required: true
   }]
});
登入後複製

左外連接

要執行左外連接,請設定所需的include 選項中的屬性為false 或將其省略,因為它默認為false。這將傳回主表中的所有記錄,即使連接表中沒有符合的值。

Posts.findAll({
  include: [{
    model: User,
    required: false
   }]
});
登入後複製

連接查詢中的Where 子句

您可以也可以在 include 選項中指定 where 子句來過濾連接表中的記錄。例如,要找出所有使用者出生年份為1984 年的所有貼文:

Posts.findAll({
  include: [{
    model: User,
    where: { year_birth: 1984 }
   }]
});
登入後複製

巢狀Where 子句

您甚至可以使用巢狀where 子句來過濾多個連接表內的條件。例如,要尋找所有使用者名為「Sunshine」且出生年份為1984 年的所有貼文:

Posts.findAll({
  where: { name: "Sunshine" },
  include: [{
    model: User,
    where: { year_birth: 1984 }
   }]
});
登入後複製

進階加入查詢

更多進階加入查詢,包括一對多、多對多或自連接,請參閱Sequelize 文件: http://docs.sequelizejs.com/en/latest/docs/models-usage/#eager-loading

以上是如何在 Node.js 中使用 Sequelize 執行不同類型的聯結?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板