2017-09-28 5 views
1

fname(これはtable1のフィールド)がnameと等しくないときに結果を返すクエリ内にクエリを書きます。テーブル2のフィールド)。しかし、私はこのクエリをコンパイルするとき私は致命的なエラーを取得してください。私は間違っている場所を私に示唆しているコードの行を確認してください。クエリ内にクエリがあるという条件で結果を返す方法

TABLE1は:

table2のをult_campに等しいです:私はこのissue.Anyヘルプが理解されるであろう得るために助けてください

$rs = $this->db->select('ult_camp.*,ult_country.name as country_name,ult_state.name as state_name') 
        ->join('ult_country', 'ult_country.id = ult_camp.country_id') 
        ->join('ult_state', 'ult_state.id = ult_camp.state_id ') 
        ->from('ult_camp') 
        ->where("'org_fname' NOT IN (SELECT 'name' FROM 'ult_coach')", NULL, FALSE) 
        ->where('ult_camp.status', 'Active') 
        ->where('ult_state.status', 'Active') 
        ->where('ult_country.status', 'Active') 
        ->get()->result(); 

をult_coachに等しいです。

ありがとうございます。

答えて

1

最初のWHERE関数呼び出しでは生のSQLを使用しているため、現在持っているものは機能しません。それは私のために働いています。..

$rs = $this->db->select('ult_camp.*,ult_country.name as country_name,ult_state.name as state_name') 
       ->join('ult_country', 'ult_country.id = ult_camp.country_id') 
       ->join('ult_state', 'ult_state.id = ult_camp.state_id ') 
       ->leftJoin('ult_coach', 'ult_camp.org_fname = ult_coach.name') 
       ->from('ult_camp') 
       ->whereNull('ult_coach.name') 
       ->where('ult_camp.status', 'Active') 
       ->where('ult_state.status', 'Active') 
       ->where('ult_country.status', 'Active') 
       ->get()->result(); 
+0

感謝を:あなたは代わりにwhereRawを使用して試みることができる:

->whereRaw("org_fname NOT IN (SELECT name FROM ult_coach)") ->where('ult_camp.status', 'Active') ... 

しかし、あなたはまた、フレーズ、左のように、あなたのクエリがult_coachテーブルに参加することができます。 – user6891871

関連する問題