我有两张表orders
和sub_orders
。
他们的关系是
$orders->hasMany('SubOrders', [
'foreignKey' => 'order_id'
]);
这两个表分别在invoice_no
和sub_invoice
中有orders
和sub_orders
列。
我必须找到orders
表格中包含相关sub_orders
的记录,其中$trackingId
将匹配Orders.invoice_no
或SubOrders.sub_invoice
$findOrder = $this->Orders->find('all', [
'conditions' => [
'OR' => [
'Orders.invoice_no' => $trackingId,
'SubOrders.sub_invoice' => $trackingId
]
],
'contain' => [
'SubOrders'
]
]);
但是这会给出错误
Column not found: 1054 Unknown column 'SubOrders.sub_invoice' in 'where clause'
答案 0 :(得分:5)
尝试执行以下查询:
$findOrder = $this->Orders->find()
->where(['Orders.invoice_no' => $trackingId])
->contain(['SubOrders' => function ($q) use ($trackingId) {
return $q
->where(['SubOrders.sub_invoice' => $trackingId]);
}
]);