共有5个表格,例如Doctor
表格(id,name,city_id,country_id,insurance_id,speciality_id)
,city
表格(id,name,country_id)
,country
表格(id,name)
,insurance
表格(id,name)
,speciality
表格(id,name)
和doctor_insurance
表格(id,doctor_id,insurance_id)
。
关系如下: -
医生belongsTo
城市和城市hasMany
医生,
医生belongsTo
专业和专业hasMany
医生,
城市belongsTo
国家和地区hasMany
城市,
医生belongsToMany
保险和保险belongsTOMany
医生。
如何获取doctor where city=NewYork, Country=USA, Insurance=United Health Care and Speciality= Dentist
的列表?
答案 0 :(得分: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();