连接 [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>
以正确推断结果类型,这是您的责任!
为了在连接具有大量列的表时避免出现大量可空字段,我们可以使用我们的嵌套选择对象语法,我们的智能类型推断将使整个对象变为可空,而不是使所有表字段都变为可空!
别名和自连接
Drizzle ORM 支持表别名,这在您需要进行自连接时非常有用。
假设您需要获取带有其父级用户的用户信息:
聚合结果
Drizzle ORM 从驱动程序中提供名称映射的结果,而不改变结构。
您可以自由地以您想要的方式操作结果,这里是一个映射一对多关系数据的示例:
一对多示例
多对多示例