prisma 连接两个表查询
时间: 2024-09-18 19:13:23 浏览: 88
Prisma是一个现代化的ORM(Object-Relational Mapping)库,用于Node.js和TypeScript,它简化了数据库操作并支持多种数据库系统。连接两个表在Prisma中通常通过`join`关键字以及关联模型来实现。
假设你有两个相关的模型,比如用户(User)和订单(Order),它们之间有一个外键关系(User_orders)链接每个用户到其下的订单。你可以这样做:
```typescript
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();
async function getUsersWithOrders() {
const usersWithOrders = await prisma.user.findMany({
include: {
orders: {
select: { id, status }, // 只选择需要的订单字段
join: {
relation: 'orders', // 使用"orders"关系名
where: { status: 'completed' } // 如果你想筛选特定状态的订单
}
}
}
});
for (const user of usersWithOrders) {
console.log(`${user.name} has ${user.orders.length} completed orders.`);
}
}
prisma退出().catch((err) => console.error(err));
```
在这个例子中,`findMany`方法会同时获取每个用户及其满足条件的已完成订单。如果你想进一步自定义查询,也可以使用`raw`选项直接编写SQL查询。
阅读全文