1

我有以下 SQL

SELECT entry_subject.id, entry_subject.subject_id FROM entry_subject INNER JOIN subject ON entry_subject.subject_id = subject.id WHERE subject.id = 71

我已经得出以下内容,这几乎是许多示例的副本,但是我在 'field list' 中得到了 1054 Unknown column 'EntrySubject.subject_id'

$subjectEntries = new CDbCriteria();
$subjectEntries->alias = 'EntrySubject';
$subjectEntries->select = 'EntrySubject.id, EntrySubject.subject_id';
$subjectEntries->join = 'INNER JOIN Subject ON Subject.id = EntrySubject.subject_id';
$subjectEntries->condition = 'Subject.id=71';
$subjectEntriesModel=Subject::model()->findAll($subjectEntries);

我的关系如下

return array(
'entrySubject' => array(self::HAS_MANY, 'EntrySubject', 'subject_id'),
'phase' => array(self::BELONGS_TO, 'Phase', 'phase_id'),
'subjectType' => array(self::BELONGS_TO, 'SubjectType', 'subject_type'),
);

我究竟做错了什么?非常感谢

4

3 回答 3

1

我假设您正在尝试获取主题 #71 的主题条目,那么您应该简单地尝试以下操作:

$subject = Subject::model()->findByPk(71);
$subjectEntriesModel = $subject->entrySubject;

编辑:通常,您应该避免为关系急切加载(如miogBurhan Çetin的答案中所述)HAS_MANY

于 2013-10-04T07:53:58.947 回答
0

从上面烧酒的回答

我假设您正在尝试获取主题 #71 的主题条目,那么您应该简单地尝试以下操作:

$subject = Subject::model()->findByPk(71);
$subjectEntriesModel = $subject->entrySubject;

我建议对此进行补充。

 $subject = Subject::model()->with('entrySubject')->findByPk(71);
 $subjectEntriesModel = $subject->entrySubject;

->with('entrySubject')已添加

如果可能的话,这将允许 yii 使用一个查询。

于 2013-10-04T08:13:35.497 回答
0
$query = Subject::model()->with('entrySubject')->findbypk($id);
于 2013-10-04T08:19:50.727 回答