【问题标题】:php symfony doctrine or taking data from 2 tablesphp symfony 学说或从 2 个表中获取数据
【发布时间】:2013-09-26 21:13:05
【问题描述】:

由于我是新手,请不要评判我。我正在尝试制作过滤器,但途中遇到了一些困难。我有两张数据表。首先是公司,其次是用户。

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,但我现在无法检查它。我想把它变成教义 例如$query = ..->innerJoin(..)->where... 但做不到。请提供任何帮助。哦,例如,这将如何处理 100,000 条记录数据库?有没有更好的办法?谢谢。

【问题讨论】:

  • 提示:为了更好地格式化您的示例数据,请使用代码块而不是 HTML。您可以通过在这些代码块之前添加<!-- language: lang-none -->(不缩进)来禁用语法突出显示。
  • 你能用一个简单的句子写出你需要从这些表格中得到什么吗?这个很不清楚

标签: php mysql sql doctrine symfony-1.4


【解决方案1】:

在 /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;


  }
}

【讨论】:

    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    相关资源
    最近更新 更多