資料庫AR之關聯查詢
資料庫AR之關聯查詢
所謂關聯查詢簡單的說就是多表聯合查詢
AR方式的關聯查詢比較DAO有一些複雜
並且也有一些小細節 需要了解
四種關係
- 多對一
self::BELONGS_TO
- 一對一
self::HAS_ONE
- 一對多
self::HAS_MANY
- 多對多
self::MANY_MANY
定義
在 model中定義對應關係
user.php
public function relations()
{
return array(
//關係名稱 對應關係 關聯的模型(gii建立) 對應的欄位
'abcd_city'=>array(self::BELONGS_TO,'City','city_id'),
//欄位的對應規則
//要關聯的模型中存在 city欄位 著關聯city欄位
//否則 關聯主鍵
);
}
使用
懶載入
//到呼叫的時候 才查詢
//不使用 join
public function actionLazyRead()
{
$user = User::model()->find();
//此時 還沒有去資料庫查詢
//此時採取資料庫去查詢
//查詢方式通過 user表中中對應的city_id 去city表中查詢
var_dump($user->abcd_city);
}
渴望載入
//直接 join資料
public function actionEagerRead()
{
//此時資料已經被查出
//通過 join的方式查出
$user = User::model()->with('abcd_city')->find();
var_dump($user);
}
查詢條件
user.php
public function relations()
{
return array(
// 新增別名 'abcd_city'=>array(self::BELONGS_TO,'City','city','alias'=>'c'),
);
}
當前模型別名預設為t
public function actionEagerRead()
{
//此時資料已經被查出
//通過 join的方式查出
$criteria = new CDbCriteria();
//當前模型的別名 預設為 t
$criteria->addCondition('t.id > 5 AND t.id < 10');
$criteria->order = 't.id desc';
$criteria->addCondition('c.id < 4');
$user = User::model()->with('abcd_city')->findAll($criteria);
var_dump($user);
}
相關文章
- 異構資料庫的關聯查詢 oracle hsodbc 關聯mysql資料庫OracleMySql
- day95:flask:SQLAlchemy資料庫查詢進階&關聯查詢FlaskSQL資料庫
- 多個異構資料庫如何關聯查詢資料庫
- 20240719資料庫關聯查詢、條件查詢資料庫
- 資料庫之AR資料庫
- 關於同一個連線不同資料庫之間的 Eloquent 關聯查詢資料庫
- hyperf關聯子表查詢主表資料
- Python—Django:關於在Django框架中對資料庫的查詢函式,查詢集和關聯查詢PythonDjango框架資料庫函式
- Laravel Eloquent 關聯模型查詢快取資料Laravel模型快取
- 資料庫之查詢最佳化資料庫
- 資料庫學習(六)聯合查詢union資料庫
- java 分庫關聯查詢工具類Java
- 資料庫全表查詢之-分頁查詢優化資料庫優化
- 資料庫查詢資料庫
- 在資料庫中查詢關鍵字資料庫
- 資料庫 - 資料查詢資料庫
- 資料庫資料的查詢----連線查詢資料庫
- 區分關聯子查詢和非關聯子查詢
- exist-in和關聯子查詢-非關聯子查詢
- MongoDB之資料查詢(關係運算)MongoDB
- Yii2實現跨mysql資料庫關聯查詢排序功能MySql資料庫排序
- MyBatis關聯查詢MyBatis
- thinkphp關聯查詢PHP
- langchain_chatchat+ollama部署本地知識庫,聯網查詢以及對資料庫(Oracle)資料進行查詢LangChain資料庫Oracle
- 關係型資料庫查詢語言 SQL 和圖資料庫查詢語言 nGQL 對比資料庫SQL
- 資料庫高階查詢之子查詢資料庫
- 關於Oracle資料庫的時間查詢Oracle資料庫
- 求助:資料庫查詢資料庫
- ThinkPHP 資料庫查詢PHP資料庫
- 查詢資料庫大小資料庫
- 資料庫排序查詢資料庫排序
- Jemter查詢資料庫資料庫
- (十三)資料庫查詢處理之QueryExecution(2)資料庫
- 資料庫學習筆記之查詢表資料庫筆記
- 資料庫 - 連線查詢、巢狀查詢、集合查詢資料庫巢狀
- Mongodb 關聯表查詢MongoDB
- MySQL多表關聯查詢MySql
- JPA多表關聯查詢