Я пытаюсь соединить 5 таблиц в codeigniter, и у меня возникают проблемы с получением правильного результата, пожалуйста, помогите. Я думаю, что ошибка в моем запросе, но я не уверен.
Я уже пробовал много утверждений о присоединении, но, похоже, не могу найти правильный ответ. Вот почему я разместил это здесь, потому что я уже безнадежен. Пожалуйста, помогите кому-нибудь ~
Вот схема и БД. Надеюсь, это поможет
Схема
База данных
public function get_receiving_details_mawb($id){
$this->ops_db->select('d.quantity, e.sku_code, a.quantity AS actual,
abs(d.quantity - a.quantity) AS variance');
$this->ops_db->from('sk_rcv_d a');
$this->ops_db->where_in('a.rcv_id', $id);
$this->ops_db->join('sk_rcv_h b', 'a.rcv_id = b.id', 'inner');
$this->ops_db->join('sk_booking_h c', 'b.booking_id = c.id','inner');
$this->ops_db->join('sk_booking_d d', 'c.id = d.book_id', 'inner');
$this->ops_db->join('sk_item e', 'd.item_id = e.id', 'inner');
$this->ops_db->group_by('d.id');//d.id
$query = $this->ops_db->get();
return $query->result_array();
}
public function get_rcvh_mawb($id) {
$this->ops_db->where("mawb_no", $id);
$query = $this->ops_db->get("sk_rcv_h");
$how = array();
foreach($query->result_array() as $row) {
$id = $row['id'];
$how[] = $id;
}
return $how;
}
-------------------------------
$wat = $this->wh_db->get_rcvh_mawb($mawb);
$item_details = array();
$items = array();
$results = $this->wh_db->get_receiving_details_mawb($wat);
foreach($results as $res) {
extract($res);
if (! array_key_exists($sku_code, $items)) {
$items[$sku_code] = array("sku_code" => $sku_code, "quantity" => 0,
"actual" => 0, "variance" => 0);
}
$items[$sku_code]['quantity'] = $quantity;
$items[$sku_code]['actual'] += $actual;
$items[$sku_code]['variance'] = $items[$sku_code]['quantity'] -
$items[$sku_code]['actual'];
}
foreach($items as $res) {
$item_details[] = array("sku" => $res['sku_code'], "qty" =>
$res['quantity'], "actual" => $res['actual'], "variance" =>
$res['variance']);
}
$final = array("mawb_no" => $mawb, "status" => $stat_api,
"status_date" => $stat_api_date, "items" => $item_details);
Вот результат, который я получил:
{
"mawb_no": "MASTERPOD-1",
"status": "Received",
"status_date": "2019-05-27 19:35:42",
"items": [
{
"sku": "RTISSUE",
"qty": "50",
"actual": 50,
"variance": 0
},
{
"sku": "ISOALCO",
"qty": "102",
"actual": 50,
"variance": 52
}
]
}
Что я должен получить:
{
"mawb_no": "MASTERPOD-1",
"status": "Received",
"status_date": "2019-05-27 19:35:42",
"items": [
{
"sku": "RTISSUE",
"qty": "50",
"actual": 50,
"variance": 0
},
{
"sku": "ISOALCO",
"qty": "102",
"actual": 102,
"variance": 0
}
]
}