2016-06-22 13 views
2

ドクターテーブルが(ID、名前、CITY_ID、COUNTRY_ID、insurance_id、speciality_id) 街テーブル(ID、名前、COUNTRY_ID) 国のテーブルを持つような5つのテーブル(idがありますが、名) 保険テーブル(ID、名前) 専門テーブル(ID、名前) docotor_insurance(ID、doctor_id、insurance_id)が雄弁4他のテーブルlaravelでテーブルを結合し

医師belongsToの市と市hasManyの医師、 医師belongsToのを次のように

関係であります専門医と専門医があります。メイクドクター、 市belongsToの国と国hasManyの都市、 医師belongsToMany保険と保険belongsTOManyドクター

は、どのように私は医者どこの都市=アメリカニューヨーク、国= USA、保険=米ヘルスケアおよびスペシャリティ=歯科医

のリストを取得します

誰もがこれについて私を助けてくれますか? Thanx。あなたはこのように照会することができます

答えて

2

、あなたの答えのための

$result=DB::table("doctor as do") 
->leftjoin('city as ci', 'ci.id', '=', 'do.city_id') 
->leftjoin("country as co","co.id","=","do.country_id") 
->leftjoin("insurance as in","in.id","=","do.insurance_id") 
->leftjoin("speciality as sp","sp.id","=","do.speciality_id") 
->select('*') 
->where('ci.name', '=', 'NewYork') 
->where('co.name', '=', 'USA') 
->where('in.name', '=', 'United Health Care') 
->where('sp.name', '=', 'Dentist') 
->get(); 
+0

ありがとう。しかし、エラーが発生しました 列が見つかりません:1054 'where句'の 'ci.name'列が不明です。 – Tony

+0

これはちょうどよい方法です。データベーステーブルとフィールド名に応じて変更することができます。 –

+0

ちょうどあなたが言ったように同じでした。それでもまだ同じことがあります。それ以外の方法はありますか? – Tony