我有两个表:
MENU
->id_menu
->title
->page_id
->order
PAGES
->id_page
->title
->page
->slug
这是选择函数:
public function get_all_menu()
{
return $this->db
->select('menu.*, pages.id_page, pages.title AS page_title')
->from($this->table)
->join('pages','id_page = page_id')
->order_by($this->order_by)
->get()
->result_array();
}
这是我的问题 - 菜单中的项目可以连接到页面,但也可以是单独的(不连接到页面)。这意味着 MENU 表中的 page_id 可以为 0。如果 page_id 为 0,则我不会从上述查询中获取该行。我怎样才能得到菜单中的所有项目(那些与页面连接的和那些没有连接的)?
最佳答案
您需要在->join()
中添加join type
喜欢
public function get_all_menu()
{
return $this->db
->select('menu.*, pages.id_page, pages.title AS page_title')
->from($this->table)
->join('pages','id_page = page_id','left')
->order_by($this->order_by)
->get()
->result_array();
}
参见引用手册 Active Record
关于php - Codeigniter 2.1 - MySQL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16668884/