我试图通过检查两个关联表中的变量来为一个表获取一条记录。
例如我的表是
user:
id | name
3781 | Foo Manchu
user_programs:
id | user_id | page_id
4150 | 3781 | 16974
Page
id | title | section_id
16974 | Dudes | 3
所以我需要查询并返回 section_id 为 3 的用户
用户与通过 page_id 关联到特定页面的 user_program 表相关联。
这就是我没有返回任何东西的东西:
if($section_id == 3) {
$q = $this->createQuery('u');
$q->leftJoin('u.user_programs up');
$q->leftJoin('up.Page p');
$q->where('u.published=1 AND u.is_preview = 0 AND u.featured=1 AND fp.deleted_at IS NULL');
$q->addWhere('p.section_id=?', $section_id);
$q->orderBy('RAND()')->limit(1);
我可以在不进行联接的情况下成功返回 u 查询,但我需要将查询限制为仅返回关联页面上 section_id 为 3 的用户。