2015-07-13 46 views
2

我是Laravel5的新手。我仍然在努力學習它。我的問題是:如何在Laravel 5中加入模型查詢

有2個表:

名爲TA

TableA中有一些列如下:命名爲TB

Name Email Tel1 Tel2 Tel3 

表B有如下的一些列:

Position MTel GTel 

表一行可以對應表B的許多行 現在我想要做SQL查詢如下:

select * where 
    (TA.Tel1=TB.MTel and TA.Tel2=TB.GTel) or 
    (TA.Tel1=TB.MTel and TA.Tel3=TB.GTel) or 
    (TA.Tel2=TB.MTel and TA.Tel3=TB.GTel) or 
    (TA.Tel2=TB.MTel and TA.Tel1=TB.GTel) or 
    (TA.Tel3=TB.MTel and TA.Tel1=TB.GTel) or 
    (TA.Tel3=TB.MTel and TA.Tel2=TB.GTel) and 
    (Name='myname') 

我建兩個模型

型號1:

class TA extends Model 
{ 
    protected $table = 'TA'; 

    public function TB() 
    { 
     return $this->belongsTo('App\TB','MTel'); 
    } 
} 

模型2

class TB extends Model 
{ 
    protected $table = 'TB'; 

    public function TA() 
    { 
     return $this->hasMany('App\TA','Tel1'); 
    } 
} 

和...我不知道該怎麼繼續。

期待您的幫助,謝謝

+0

此查詢是否是您嘗試加載關係或您想要在模型上運行的其中一個查詢時總是希望應用的查詢? –

回答

-1

如果你想從表TA的所有記錄中都涉及到表TB的記錄,你可以(如果你ofcourse使用雄辯)做好以下幾點:

TB::with('TA')->where('name','=',$name); 

這將從表TB中選擇相應名稱的記錄以及屬於它的表TA的所有記錄。