0

関連する 2 つのテーブルにある変数をチェックして、1 つのテーブルの 1 つのレコードを取得しようとしています。

たとえば、私のテーブルは

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 のユーザーのみを返すようにクエリを制限する必要があります。

4

1 に答える 1