关于2个FK和1个主键的Php查询


Php query regarding 2 FK and 1 Primary Key

在我的实习表中,我有两个外键id_promoteer_interviewid_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'";