前文曾说过,ThinkPHP 数据库视图模型,实际是通过 JOIN查询 来模拟实现的。因此,在定义视图模型时,也可以通过定义 _type 的值来定义表查询 JOIN 类型:
<?php class ArticleViewModel extends ViewModel{ public $viewFields = array( 'article'=>array('aid','title','content','uid','_type'=>'LEFT'), 'user'=>array('username','_on'=>'article.uid=user.uid'), ); } ?>
实际执行的 SQL 语句变更为:SELECT article.aid AS aid,article.title AS title,article.content AS content, article.uid AS uid,user.username AS username FROM test_article article LEFT JOIN test_user user ON article.uid=user.uid
关于表连接查询的 JOIN 类型更多信息,请参看《MySQL JOIN 表连接》系列说明。