这是我想要获取数据的表,我正在使用express从下一个应用程序发出获取请求:
model Provider {
id String @id @default(cuid())
name String
email String
password String
phone String
photo String?
service Service? @relation(fields: [serviceId], references: [id])
serviceId String?
location Location? @relation(fields: [locationId], references: [id])
locationId String?
createdAt DateTime @default(now())
text String
starAverage Float
medals Medals[]
comment Comment[]
}
model Service {
id String @id @default(cuid())
type String
provider Provider[]
}
我想获取提供商服务表的服务类型,而不是 serviceId,这是我的路线。
router.get('/list', async (req: Request, res: Response) => {
const allClients = await prisma.client.findMany()
res.json({allClients})
})
这就是我使用 axios 获取其余 API 数据的方式
const [providers, setProviders] = useState([] as any[])
useEffect(() => {
axios.get('http://localhost:5140/providers/list')//my list of all providers
.then(res => {
console.log(res)
setProviders(res.data)
}).catch(err => {
console.log(err)
})
}, )
const renderedProviders = Object.values(providers).map(provider => {
return (
<div
className="card"
style={{ width: "18rem"}}
key={provider.id}
>
<img className="card-img-top" src="..."/>
<div className="card-body">
<h3>{provider.name}</h3>
<p>{provider.starAverage} estrekas</p>
<p>{provider.serviceId}</p>
</div>
</div>
);
});
return (
<div className="d-flex flex-row flex-wrap justify-content-between">
{renderedProviders}
</div>
)
目前只能获取提供者的serviceId,而不是服务的类型
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
要从数据库中的外键引用的另一个表中获取数据,您可以在 SQL 查询中使用
JOIN子句。 JOIN 子句允许您根据表之间的相关列组合两个或多个表中的行。这就是如何使用
JOIN子句从两个表(users和orders)获取数据,这两个表通过外键关联.JOIN子句根据user_id列组合users和orders表中的行。 code>orders 表和users表中的id列。SELECT子句指定要从users和orders表中检索的列。已编辑 如何在 Express 路由和来自 axios 的 http 请求中引用它?
您可以使用sequelize.query(Sequelize是一个基于promise的Node.js ORM)方法来执行原始SQL查询。
app.get('/users/:id', (req, res) => { const { id } = req.params; const query = ` SELECT users.*, orders.* FROM users JOIN orders ON orders.user_id = users.id WHERE users.id = :id `; const replacements = { id }; sequelize.query(query).then(([results, metadata]) => { res.send(results); }); });sequelize.query 方法用于执行原始 SQL 查询,其中包含 JOIN 子句以从用户和订单表中获取数据。