私は2つのテーブルを持っていorder
ますorder_version
order
| id |
| 1 |
| 2 |
order_version
| id | order_id | status |
| 1 | 1 | 0 |
| 2 | 2 | 0 |
| 3 | 1 | 1 |
| 4 | 1 | 2 |
バージョンを変更したすべての注文を検索したい。id='1'
別のものは変更されておらず、バージョンが1つしかないため、注文のみを取得したいという意味です。
これを試してみました:
1) $criteria = new CDbCriteria();
2) $criteria->with = array('orderVersions');
3) $criteria->addCondition("(SELECT MAX(status) FROM order_version) != '0'");
4) $criteria->addInCondition('order.id', $orderArray);
5) $criteria->order = 'order.id DESC';
6) $orders = Order::model()->findAll($criteria);
$orderArray
変数はorder
id
sの配列です。
まず第一に、問題は4行目にあります。
Column not found: 1054 Unknown column 'order.id' in 'where clause'
id
私がその代わりにやるなら私order.id
は
Integrity constraint violation: 1052 Column 'id' in where clause is ambiguous.
5行目でも同じ問題です。
もう1つ:3行目であるyiiでサブクエリを使用する方法がよくわかりません。
助言がありますか?