[英]Join 3 mysql tables php codeigniter
我有以下3種類型的表,最后我需要獲取屬於users表的shop_admin
和shop_coadmin
電子郵件地址。
table-1-shop
-------------------------------
shop_id | shop_name | shop_admin(foreignkey user_id) | shop_coadmin(foreignkey user_id)
table-2-Users
-------------------------------
user_id | user_name | user_email
table-3-orders
--------------------------------
order_id | shop_id
現在,我的要求是從用戶表中獲取shop_admin和shop_coadmin電子郵件ID,
訂單包含shop_id
,使用shop_id
它將搜索admin和coadmin id
,並需要在用戶中搜索user_email
,
我嘗試使用以下代碼,但無法收到電子郵件
public function getAllCart($user_id,$paging, $ordering, $searching )
{
$this->db->select('part_number, part_description, order_quantity, order_id, B.user_firstname, B.user_lastname, B.user_email, A.shop_name,
A.shop_admin AS shop_admin');
$this->db->from('li_orders');
$paging;
$ordering;
$searching;
$this->db->where('order_status', 'Cart');
$this->db->join('li_parts', 'li_parts.part_id = li_orders.part_id','LEFT');
$this->db->join('li_shop AS A', 'A.shop_id = li_orders.shop_id','LEFT');
$this->db->join('li_users AS B', 'B.user_id = A.shop_admin','LEFT');
$this->db->where('li_orders.user_id', $user_id);
return $this->db->get()->result_array();
}
我該怎么辦?
如果您的問題是僅收到具有上述代碼的shop_admin電子郵件,則需要將具有另一個別名的li_users表添加到查詢中,並將其加入li_shop.coadmin字段。 顯然,您需要使用新別名添加表中的字段,並使用字段別名標記哪些用戶詳細信息用於管理員,哪些用戶詳細信息用於管理員。
...
$this->db->select('part_number, part_description, order_quantity, order_id, B.user_firstname as adminfirstname, B.user_lastname as adminlastname, B.user_email as adminemail, C.user_firstname as coadminfirstname, C.user_lastname as coadminlastname, C.user_email as coadminemail, A.shop_name,
A.shop_admin AS shop_admin');
...
$this->db->join('li_users AS B', 'B.user_id = A.shop_admin','LEFT');
$this->db->join('li_users AS C', 'C.user_id = A.shop_coadmin','LEFT');
...
下次描述代碼中使用的表結構時,請使用相同的表名和字段名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.