SELECT * FROM table1 a, table2 m WHERE a.colid=1 and m.colid=1 order by a.date desc
问问题
256 次
1 回答
1
假设您的表结构如下所示
Table1
==========================
colid | col2 | col3 | col4
Table2
==========================
colid | col2 | col3 | col4
关系很重要
在 Yii 框架中,ActiveRecords 概念在数据库操作中发挥着巨大的作用。一个 AR 类是指一个数据库表。要执行关系查询,您应该定义表之间的关系。您可以在模型中使用关系()方法来做到这一点。请遵守以下语法。
如果 Table1 在 Table2 中的关系实体多于关系船应该是
class Table1 extends CActiveRecord
{
public function relations()
{
return array(
'table2' => array(self::HAS_MANY, 'Table2', 'colid'),
);
}
}
这里,Table2 也与 Table1 有关系。IE,
class Table2 extends CActiveRecord
{
public function relations()
{
return array(
'table1' => array(self::BELONGS_TO, 'Table1', 'colid'),
);
}
}
如果您的程序中现在有这些指令,您就有资格执行关系查询。
使用 CDbCriteria
$cri = new CDbCriteria();
$cri->join = 'JOIN table2 t2 ON t1.colid = 1 and t2.colid = 1';
$cri->order = 'col3 DESC'; //In your case date fields
$RS = Table1::model()->findAll($cri);
echo '<pre>';
print_r($RS);
echo "</pre>";
//to echo col2 info of table1
echo $RS[0]->col2;
//to echo col1 info of table2
echo $RS[0]->table2[0]->col2;
你可以用一行做同样的事情
$info = Table1::model()->findByPk(1);
echo ($info->table2[0]->col2);
我希望它可以帮助您计算程序中的指令。
于 2013-05-16T05:58:51.310 回答