symfony2 を使用していますが、それは単に mysql の問題です...
私は良いテーブルスキーマ(重要なフィールドだけ)を持っていると思います(コードは自明です):
ユーザー (id) ステータス (id) いいね (id,user_id,status_id) コメント (id,user_id,status_id)
私は大きな選択をしています。
これを試していました:
$qb=$this->createQueryBuilder('s')
->addSelect('u')
->addSelect('u2')
->addSelect('u3')
->addSelect('l')
->addSelect('c')
->addSelect('s2')
->where('s.user = :user')
->setParameter('user', $user)
->innerJoin('s.user', 'u')
->leftJoin('s.likes', 'l')
->leftJoin('l.user', 'u2')
->leftJoin('s.comments', 'c')
->leftJoin('c.user', 'u3')
->leftJoin('c.status', 's2')
->orderBy('s.time', 'DESC')
->setMaxResults(15);
しかし、結果は 15 の同じステータスです... 間違っています。
ステータスだけを選択していたときにうまく機能しました...ステータスへのいいね..とユーザー(いいねとステータスの作成者)
そのように:
SELECT * FROM statuses s0_
INNER JOIN users t1_ ON s0_.user_id = t1_.id
LEFT JOIN status_likes s2_ ON s0_.id = s2_.status_id
INNER JOIN users t3_ ON s2_.user_id = t3_.id
WHERE s0_.user_id = 25 ORDER BY s0_.time DESC LIMIT 15
それは非常にうまく機能しますが、どうすれば別のコメントを実装し、(ユーザー -> コメントの作成者) そこを選択できますか?...