2017-01-19 2 views
0

Laravelを使用して結合を作成すると、結合参照が存在しない場合はテーブル全体が選択され、それ以外の場合は結合されます。参照が存在するテーブルへの結合

DB::table('tInfo') 
->join('tStaff', 'tStaff.tourID', '=', 'tInfo.tcode')->get() 

tInfoはありません(私は「tStaff」の参照を削除し、行を返さないクエリを気づい

特定のツアーにリンクtStafftStaffとの関係を持つことになります行「多くの1つ」ですエラーが含まれています)。これは、結合が無効であるためと考えられます。

この問題を解決するにはどうすればよいですか?

+0

を試してみてください、あなたの 'tInfo'、' tStaff'と 'sInfo'テーブル構造を共有してください。それ以外の場合は、 'sInfo'テーブルに外部キー参照があるかどうかを知ることは難しいです。 –

答えて

0

この1

DB::table('tInfo as inf') 
       ->whereNotExists(function ($query) { 
      $query->select(DB::raw('tourID')) 
        ->from('tStaff') 
        ->whereRaw('inf.tcode= tStaff.tourID'); 
     }) 
     ->get(); 
関連する問題