Php 如何通过联接列筛选R::findAll()结果?-红豆HP4

Php 如何通过联接列筛选R::findAll()结果?-红豆HP4,php,mysql,redbean,Php,Mysql,Redbean,我是RedBeanPHP的新手,我研究了他们的文档,但找不到如何过滤R::findAll结果,就像我们如何通过$bean->withCondition“…”,[…];;过滤共享列表一样 我的情况是: 我有两个表user,usertype,它们有一对多的关系,这意味着每个用户都必须有一个usertype,多个用户可以是相同的类型 表:用户类型 表:用户 因此,现在我只想检索类型不是ADMIN的用户,但以下内容不起作用: $not_admins=R::findAll'user','WHERE@joi

我是RedBeanPHP的新手,我研究了他们的文档,但找不到如何过滤R::findAll结果,就像我们如何通过$bean->withCondition“…”,[…];;过滤共享列表一样

我的情况是:

我有两个表user,usertype,它们有一对多的关系,这意味着每个用户都必须有一个usertype,多个用户可以是相同的类型

表:用户类型

表:用户

因此,现在我只想检索类型不是ADMIN的用户,但以下内容不起作用:

$not_admins=R::findAll'user','WHERE@joined.usertype.type!=?',['ADMIN']


您可以检查相同的语法是否适用于withCondition方法,但仅适用于检索相关记录或使用RedBeanPHP术语仅适用于/筛选共享bean。

更容易避免rb连接,只需执行mysql即可

使用

R::exec'select from user internal join other on some id=id,其中foo=:foo',['foo'=>'some_value']

您可以在何处进行子查询,例如:

R::findAll'users',从usertype中选择类型,其中usertype.id=users.id!=:类型“,[”:类型“=>”管理“]


另一种方法是,您可以按照Nick的建议运行普通查询,但使用$query=R::getAll'…'而不是$query=R::exec'…';然后可以使用R::convertToBeans$query;要获取beans对象或通过数组访问数据而不进行转换

我没有阅读完整的表结构,我想你已经了解了它的要点
+--------+------------------+------+-----+---------+----------------+
| Field  | Type             | Null | Key | Default | Extra          |
+--------+------------------+------+-----+---------+----------------+
| id     | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| name   | varchar(10)      | NO   | UNI | NULL    |                |
| psname | varchar(10)      | NO   | UNI | NULL    |                |
+--------+------------------+------+-----+---------+----------------+
+-------------+---------------------+------+-----+-------------------+----------------+
| Field       | Type                | Null | Key | Default           | Extra          |
+-------------+---------------------+------+-----+-------------------+----------------+
| id          | int(11) unsigned    | NO   | PRI | NULL              | auto_increment |
| username    | varchar(16)         | NO   | UNI | NULL              |                |
| password    | char(60)            | NO   |     | NULL              |                |
| email       | varchar(64)         | NO   | UNI | NULL              |                |
| is_active   | tinyint(1) unsigned | NO   |     | 0                 |                |
| created_at  | datetime            | NO   |     | CURRENT_TIMESTAMP |                |
| usertype_id | int(11) unsigned    | NO   | MUL | NULL              |                |
+-------------+---------------------+------+-----+-------------------+----------------+