2017-06-07 14 views
0

休憩の投稿とは異なるシナリオです。モーダルからの結合値を連結する方法

enter image description here

カテゴリenter image description here

今すぐsubsscriptionの列フルーツ、スナック、醤油、昼食にid rを

サブスクリプション:私は、次のような2つのテーブルをVEのカテゴリ表のたとえばFruits is 1の場合は、フルーツの名前はAppleです。のサブスクリプションテーブルには、アイテム名にIDが記載されている食品の名前を取得したいと考えています。

私はcodeigniterで作業していますが、ジョインを使って試しましたが、値は表示されません。

$this->db->select('*'); 
     $this->db->from('subsscription'); 
     $this->db->join('addschool','addschool.id=subsscription.schoolid'); 
     $this->db->join('user','user.id=subsscription.studentid'); 
     $this->db->join('category As u1','u1.id=subsscription.Fruits', 'left OUTER'); 

     $this->db->join('category As u2','u2.id=subsscription.snack', 'left OUTER'); 
     // $this->db->where('subsscription.snack >', '0'); 
     $this->db->join('category As u3','u3.id=subsscription.sauce', 'left OUTER'); 

     $this->db->join('category As u4','u4.id=subsscription.lunchdrink', 'left OUTER'); 

     $this->db->join('category As u5','u5.id=subsscription.icypole', 'left OUTER'); 

     $this->db->join('category As u6','u6.id=subsscription.lunch', 'left OUTER'); 
     // $this->db->where('subsscription.Fruits','category.id'); 
     // $this->db->group_by('subsscription.id'); 


     $query = $this->db->get(); 

     //echo $this->db->last_query(); 

     if($query->num_rows() > 0) 
     { 
      return $query->result(); 
     } 
     else 
     { 
      return false; 
     } 

マイ出力要件は、それは次のようでなければならないということである:Appleは行IDを有するリンゴ、イチゴミルクあり、ストロベリーミルクは、行IDがで有します。

+0

select文では、サブクエリを使用できます。それは動作するはずです。クエリが重くなる可能性があります。しかし、インデックスを持っていればそれはうまくいくでしょう。 –

+0

plz説明方法?例を関連付ける。 – user3162878

+0

選択潜水艦。*、 \t \t(ここで、ID = subs.FruitsカテゴリからitemNameにを選択) 潜水艦などsubsscription \t からfruit_itemname として、私は同様のDBを持っていけないように、このクエリを発射することはできないけど、それが必要作業。 –

答えて

0

SELECT( '*')を実行すると機能しません。私は間違っているかもしれませんが、それはもっと頻繁に起こりますが、私はあなたがそうすることはできないと思います。次は私のために働いた。他の誰かが答えを持っているのであれば、実際にはすべてのテーブルですべてを取得するだけです。自由に追加してください。

私も学校のテーブルを出してしまったので、それを元に戻す必要があります。関連する情報を使ってテーブルを作成しましたが、そのように感じることはありませんでした。

$this->db->select('subsscription.id AS sub_id, user.name, u1.itemname AS fruit, u2.itemname AS snack, u3.itemname AS sauce, u4.itemname AS lunchdrink, u5.itemname AS icypole, u5.itemname AS lunch'); 
    $this->db->from('subsscription'); 
    $this->db->join('user','user.id=subsscription.studentid', 'JOIN'); 
    $this->db->join('category As u1','subsscription.Fruits=u1.id', 'LEFT OUTER'); 
    $this->db->join('category As u2','subsscription.snack=u2.id', 'LEFT OUTER'); 
    $this->db->join('category As u3','subsscription.sauce=u3.id', 'LEFT OUTER'); 
    $this->db->join('category As u4','subsscription.lunchdrink=u4.id', 'LEFT OUTER'); 
    $this->db->join('category As u5','subsscription.icypole=u5.id', 'LEFT OUTER'); 
    $this->db->join('category As u6','subsscription.lunch=u6.id', 'LEFT OUTER'); 
    $query = $this->db->get(); 
    if($query->num_rows() > 0) { 
     foreach($query->result() AS $row) { 
      print '<pre>' . print_r($row, TRUE) . '</pre>'; 
     } 
    } 

これの出力は:

stdClass Object 
(
    [sub_id] => 1 
    [name] => Betty 
    [fruit] => Apple 
    [snack] => 
    [sauce] => 
    [lunchdrink] => Strawberry Milk 
    [icypole] => 
    [lunch] => 
) 
stdClass Object 
(
    [sub_id] => 2 
    [name] => John 
    [fruit] => Banana Bread 
    [snack] => 
    [sauce] => Apple 
    [lunchdrink] => 
    [icypole] => Strawberry Milk 
    [lunch] => Strawberry Milk 
) 

は、私は明らかにランダムな値を使用していました。

関連する問題