可以用sql语句来演示一下whereHas吗
时间: 2023-07-01 15:17:08 浏览: 150
当我们使用whereHas来查询关联表数据时,实际上Laravel会自动生成一个子查询来实现,下面是一个使用whereHas查询关联表数据的SQL语句示例:
假设我们有两张表,一张是users表,另一张是posts表。它们之间的关联是users表有一个id字段,posts表有一个user_id字段,表示用户id。现在我们要查询所有有发帖记录的用户信息,可以使用如下的SQL语句来实现:
```
SELECT * FROM users
WHERE EXISTS (
SELECT * FROM posts
WHERE posts.user_id = users.id
);
```
这个SQL语句中,子查询部分就是使用whereHas方法生成的。它的作用是查询posts表中所有user_id与users表中id相等的记录,然后判断是否存在这样的记录,如果存在就返回对应的用户信息。
阅读全文