首页 > 解决方案 > MySQL Join - 连接两个表并将结果显示为第三个表的列

问题描述

我有 3 个具有以下结构的表!

Delivery_Boy : id(PK), 日期, 时间, 评论, order_id ,

Order_history : order_history_id(PK), order_id , order_status_id ,

Order_status : order_status_id(PK) , status_name

要求: Delivery_boy 表包含每个具有唯一 order_id 的订单。但 order_status_id 或 Status_name 在此表中不可用。

我想加入 order_history 和 order_status 表,以便它们为相应的 order_status_id 生成 status_name 并将其显示为 delivery_boy 表中的列。

目前我的代码是:

    public function getOrder($username) {
    $query = $this->db->query("SELECT date, time, oh.order_id, oh.comment, os.order_status_id AS status FROM delivery_boy oh LEFT JOIN ". DB_PREFIX . "order_history os ON oh.order_id = os.order_id WHERE name = '" . $this->db->escape($username) . "'");
    return $query->rows;
}

我得到如下图所示的结果:它只显示 status_id,而不是 status_name。

我已经尝试过,但无法弄清楚。请帮忙! 在此处输入图像描述

标签: phpmysql

解决方案


推荐阅读