Doctrine继承:在WHERE子句中使用父表列获取子表的行计数

时间:2011-04-08 18:47:17

标签: inheritance doctrine-1.2 symfony-1.4

我正在开发一个拥有多个订户(user_id)的系统,该订户拥有多个客户和供应商(继承'Person'类)。我需要显示客户数量和每个订户的供应商(子表的组总计)。如何使用DQL获取这些组总数?

Person:
  columns:
    user_id: { type: integer }
    name:    { type: string(80) }
    //...

Customer:
  inheritance:
    type:     concrete
    extends:  Person
  columns:
    //...

Vendor:
  inheritance:
    type:     concrete
    extends:  Person
  columns:
    vendor_type:    { type: string(80), notnull: true }
    terms_id:       { type: integer }
    //...

1 个答案:

答案 0 :(得分:0)

看着我自己的问题,我意识到它有多愚蠢。查询非常简单:

    $result =  Doctrine_Query::create()
        ->select('type, COUNT(*) AS count')
        ->from('Person')
        ->groupBy('type')
        ->fetchArray();