连接 [SQL]
SQL 中的连接子句用于组合 2 个或更多表,基于它们之间的相关列。
Drizzle ORM 的连接语法是在 SQL 类似性与类型安全性之间取得平衡。
连接类型
Drizzle ORM 提供了 INNER JOIN
、FULL JOIN
、LEFT JOIN
和 RIGHT JOIN
的 API。
让我们快速浏览一下基于以下表模式的示例:
左连接
右连接
内连接
全连接
部分选择
如果您需要选择特定字段子集或具有扁平响应类型,
Drizzle ORM 支持部分选择的连接,并将根据 .select({ ... })
结构自动推断返回类型。
您可能注意到 petId
现在可以为 null,这是因为我们正在进行左连接,并且可能有没有宠物的用户。
在使用 sql
操作符进行字段的部分选择和汇总时,
记住使用 sql<type | null>
以正确推断结果类型,这完全取决于您!
为了避免在连接具有大量列的表时出现大量可为 null 的字段,我们可以利用我们的 嵌套选择对象语法,
我们的智能类型推断将使整个对象变为可为 null,而不是将所有表字段都设为可为 null!
别名和自连接
Drizzle ORM 支持表别名,这在您需要进行自连接时非常方便。
假设您需要获取带有父母的用户:
聚合结果
Drizzle ORM 从驱动程序传递名称映射的结果,而无需更改结构。
您可以自由地操作结果,下面是映射多对一关系数据的示例:
一对多示例
多对多示例