gpt4 book ai didi

php symfony Doctrine 或从 2 个表中获取数据

转载 作者:行者123 更新时间:2023-11-30 01:16:08 25 4
gpt4 key购买 nike

因为我很新,所以不要评判我。我正在尝试制作一个过滤器,但途中遇到一些困难。我有两个数据表。首先是公司,其次是用户。

Companies:
____________________
id | name |
1 | try |
2 | test |
3 | experiment |


Users:
_____________________________________
|id | company_id | name | status |
| 1 | 1 | Idiot |pending |
| 2 | 1 | Funny |active |
| 3 | 2 | Me |pending |
| 4 | 2 | Lucky |rejected|
| 5 | 2 | Moon |rejected|

我可能必须进行 INNER JOIN 并仅接受待处理的公司和用户。我对“拒绝”不感兴趣。所以我有兴趣得到:

3  |  2  | Me | pending | test

以及其他待处理且不活动的记录。该公司必须有待处理用户,并且同一公司不得有活跃用户。

SELECT *
FROM users u
INNER JOIN companies c
ON u.company_id = c.id
WHERE u.status = 'pending'
AND NOT EXISTS(SELECT u2.status
FROM users u2 ON u2.id = c.id
WHERE u2.status = 'pending')

或者类似的东西是SQL,但我现在无法检查它。我想把它变成 Doctrine 例如$query = ..->innerJoin(..)->where... 但无法成功。请提供任何帮助。哦,例如,这将如何处理 100,000 条记录的数据库?有没有更好的办法?谢谢。

最佳答案

在/lib/model/doctine/UsersTable.class.php中:

class UsersTable extends Doctrine_Table
{

public function getAllCompanies($user_id) {

$q = $this->createQuery('u')
->where('u.istatus = ?','pending')
->leftJoin('u.Companies c WITH c.id = u.company_id')
->execute();

return $q;


}
}

关于php symfony Doctrine 或从 2 个表中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19038798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com