【问题标题】:Yii2 relational query help: select only records which have related recordsYii2 关系查询帮助:只选择有相关记录的记录
【发布时间】:2017-03-18 14:03:25
【问题描述】:

我有两个表 A 和 B,关系为“A 有很多 B”。 A 可能没有任何 B 记录。

我需要编写一个查询,它只选择那些在 Bs 中有相关记录的 A 记录。应该忽略没有相关 B 记录的记录。 使用 Yii2 活动记录,我还尝试加载所有 A 记录,并急切加载相关的 B 记录。所以这就是我所拥有的:

Movies::find()->with('shows')->all();

如何添加必要条件以过滤掉没有节目的电影? 如何在取决于节目数据的电影上添加任何条件?

【问题讨论】:

    标签: activerecord yii2 relationship


    【解决方案1】:

    用innerJoinWith代替with,如:

    Movies::find()->innerJoinWith(['shows'])->all();
    

    http://www.yiiframework.com/doc-2.0/yii-db-activequery.html#innerJoinWith()-detail

    【讨论】:

      猜你喜欢
      • 2021-01-01
      • 2014-06-10
      • 2013-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 1970-01-01
      相关资源
      最近更新 更多