在我的实习表中,我有两个外键id_promoteer_interview和id_supervisor_intership。在business_contacts表中,我有一个主键id_business。我正试图从business_contacts表中获取数据,该表与实习表相关联。以下查询是否正确?
公共函数update_form_business_contact($name_enterprise){$query="选择*FROM业务_联系人,实习其中business_contacts.id_business=内部装运.id_supervisor_internshipAND interships.name_enterprise_enterprise='$name_enterprece'";$result=$this->_db->query($query);#查看教师的成绩if($result->rowCount()=0){while($row=$result->fetch()){$contact=新业务联系人($row->id_business,$row->firstname_business、$row->lastname_business$row->service_business$row->function_business$row->phone_business$row->phone_secretary_business$row->mobile_business);}}return$contact;}
我的问题是:主键必须同时引用两个外键吗?如果是的话,我该怎么做呢。谢谢你的帮助。
您应该使用类似于的联接重写查询
$query = "SELECT *
FROM business_contacts bc
INNER JOIN internships i ON bc.id_business = i.id_supervisor_internship
WHERE internships.name_enterprise_internship = '$name_enterprise'";
如果您需要两个id,则使用两个id左联接两次:
$query = "select
*
from internships i
left join business_contacts bc ON bc.id_business = i.id_supervisor_internship
left join business_contacts bc2 on bc2.id_business = i.id_promoter_internship
WHERE
i.name_enterprise_internship = '$name_enterprise'";
如果您只需要主管id:
$query = "select
*
from internships i
left join business_contacts bc ON bc.id_business = i.id_supervisor_internship
WHERE
i.name_enterprise_internship = '$name_enterprise'";
如果你只需要推广人id:
$query = "select
*
from internships i
left join business_contacts bc on bc.id_business = i.id_promoter_internship
WHERE
i.name_enterprise_internship = '$name_enterprise'";
要在联接中使用特定参数:
$query = "select
*
from internships i
left join business_contacts bc ON bc.id_business = i.id_promoter_internship and i.name_enterprise_internship = '$name_enterprise'";