0
例如,我有两个MANY_MANY关系的相关模型。 需要查找所有名称包含'test'或其中关系model2.name包含'test'的模型。yii通过使用有相关模型找到模型
在sql上我写了这个查询,这是我想从ActiveRecord中得到的结果,通过使用标准关系机制和CDbCriteria。
SELECT m1.* FROM model1 m1 LEFT JOIN model_model mm ON mm.from_id = m1.id LEFT JOIN model2 m2 ON mm.to_id = m2.id GROUP BY m1.id HAVING ( m1.name LIKE '%test%' OR GROUP_CONCAT(m2.name) LIKE '%test%' );
简单的使用Activerecord.findBySql不是很好的解决方案,因为我有很多模型,比如上面。因此,为了更快地组合任何模型,优选关系。
当我使用CDbCriteria.with Yii生成2查询。 当我将CDbCriteria.with与CDbCriteria.To一起使用时,Yii试图从相关表中选择所有列,这是冗余的,将来可能会很慢,因为关系数量可能会比这个例子中的数量多得多。
有什么想法吗?
谢谢。
结果我们有逻辑AND(M1.name LIKE'test'和M2.name LIKE'test'),但我需要OR – axon
感谢与范围的想法,我forg关于这个功能。现在似乎我找到了解决办法,但需要时间进行检查 – axon