2016-10-04 8 views
1

'select left'を使用してテーブル内のidの2文字を取得しようとしましたが、idパラメータで別のテーブルに結合しようとしましたが、実行し、結果をjsonの形式で出力しますが、動作しません。出力json_encodeのLEFTテーブルとJOINテーブルを選択できません

私のスクリプト、

Controllers 
     foreach($this->mymodel->getLeft()->result_array() as $row) 
      { 
       $data[] = array(
        'sub_id' => $row['sub_id'], 
        'long_id' => $row['long_id'], 
        'total' => $row['total'] 
       );     
      } 
      echo json_encode($data); 

モデル:

function data_alat() { 
    $sql = "SELECT LEFT(tb1.id,2) AS sub_id, long_id, COUNT(*) total 
      FROM tb1 JOIN tb2 ON tb2.id = tb1.sub_id 
      GROUP BY sub_id "; 

    return $this->db->query($sql); 
} 

マイデータベース:

TB1:

field id= 
BM-001, 
BM-002, 
BC-009, 
JK-001, 
LP-080, 
JK-002 

TB2:

field id= 
BM, 
BC, 
JK, 
LP 

field long_id= 
BIM, 
BIC, 
JIK, 
LIP 
思っ

{ "sub_idは": "BM"、 "long_id":BIM、 "総": "2"}

+1

を試して、 from、whereステートメントのwhere節。代わりにこの方法を試してください。 ' \t LEFT(tb1.id、2)sub_idはAS、 \t COUNT(*)の総 \t FROM TB1 がtb2.id =左のTB2をJOIN SELECT(tb1.idを、2) GROUP BY \t sub_id' – 1000111

+0

この種の問題は、デザインが貧弱であることを示すことがあります。 – Strawberry

+0

ありがとう@ 1000111、ok問題はOKでしたが、実際にはこのデータを取得してjsonの形式で表示したかったので、結合がうまくいかない場合はnullです。 –

答えて

1

エイリアスが同じ選択で参照することができないこの

$sql = "SELECT LEFT(tb1.id,2) AS sub_id, COUNT(*) total 
      FROM tb1 LEFT JOIN tb2 on left (tb1.id,2) = tb2.sub_id 
      GROUP BY sub_id "; 
+0

ありがとう@ YVS1102、はい、大丈夫ですが、どのようにこのlong_idをIDで取得しましたか –

関連する問題