1

現在、私は外部キー thirdsmcontent_id value を持っていますが、今は値を取得したいです

thirdsubmenu_namethirdmenuテーブルから、テーブルsubmenu_nameから、テーブル から。submenumenu_namemainmenu

この問題を解決するのを手伝ってください。以下のコードを試しましたが、モデル コードが正しくありません。それは私のデータを表示していません

私のデータベースのテーブル構造

   1)Table: mainmenu
    ---------------
     mainmenu_id   PK(primary key)
     menu_name     ..... 

    2)Table: submenu
    -------------------
     submenu_id     PK
     mainmenu_id    FK (foreign key refrences mainmenu table)
     submenu_name   ..... 


    3)Table: thirdsubmenu
    --------------------
      thirdsubmenu_id     PK
      submenu_id          FK (foreign key refrences submenu table)
      thirdsubmenu_name     ........


    4)Table: thirdsmcontentdetails
    --------------------
      thirdsmcontent_id   PK
      thirdsubmenu_id     FK (foreign key refrences thirdsubmenu table)
      content              ......

私のコントローラーで

 $thirdsubmenu_id = $this->uri->segment(4);

   $data['main_menuname'] = $this->thirdsmcontentdetailsmodel->getMainMenuNameOfSubmenu($thirdsubmenu_id); 

私のモデルで

 //---------------------------get Main Menu Name by Menu id-----------------------------------
 function getMainMenuNameOfSubmenu($thirdsubmenu_id)
  {     
         $this->load->database();
         $query = $this->db->join('thirdsubmenu','thirdsubmenu.submenu_id = thirdsmcontentdetails.submenu_id')->get_where('thirdsubmenu',array('thirdsubmenu_id'=>$thirdsubmenu_id));  
         return $query->row('menu_name'); 
  }

取得エラー:

    A Database Error Occurred

    Error Number: 1066

    Not unique table/alias: 'thirdsubmenu'

    SELECT * FROM (`thirdsubmenu`) JOIN `thirdsubmenu` ON `thirdsubmenu`.`submenu_id` = `thirdsmcontentdetails`.`submenu_id` WHERE `thirdsubmenu_id` = '1'

    Filename: D:\xampp\htdocs\system\database\DB_driver.php

    Line Number: 330
4

1 に答える 1

1

あなたは両方FROMを定義していますがJOINthirdsubmenuそれは不可能であり、意味がありません。次のいずれかを使用します。

$this->db->join('thirdsubmenu','thirdsubmenu.submenu_id = thirdsmcontentdetails.submenu_id');
$query = $this->db->get_where('thirdsmcontentdetails',array('thirdsubmenu_id'=>$thirdsubmenu_id));

または:

$this->db->from('thirdsmcontentdetails');
$this->db->join('thirdsubmenu','thirdsubmenu.submenu_id = thirdsmcontentdetails.submenu_id')
$this->db->where(array('thirdsubmenu_id'=>$thirdsubmenu_id));
$query = $this->db->get();

CI documentation結合を定義する方法については、を参照してください。

于 2013-03-31T12:43:09.097 に答える