Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用多个公共字段连接两个表以进行搜索筛选_Php_Mysql_Sql - Fatal编程技术网

Php 如何使用多个公共字段连接两个表以进行搜索筛选

Php 如何使用多个公共字段连接两个表以进行搜索筛选,php,mysql,sql,Php,Mysql,Sql,我有两个表格bpi_注册和bpi_团队档案。bpi_注册中的字段为:id、id_学校、名、姓、电子邮件、城市、州、国家,bpi_团队档案表中的字段为id_团队、团队名称、id_学生1、id_学生2、id_学生3现在id_学生1、id_学生2、id_学生3包含与bpi_注册学生相同的id。我不知道如何连接多个字段。我写的问题如下。如果我错了,请纠正我: SELECT * FROM bpi_registration INNER JOIN bpi_teamProfile

我有两个表格bpi_注册和bpi_团队档案。bpi_注册中的字段为:
id、id_学校、名、姓、电子邮件、城市、州、国家
,bpi_团队档案表中的字段为
id_团队、团队名称、id_学生1、id_学生2、id_学生3
现在id_学生1、id_学生2、id_学生3包含与bpi_注册学生相同的
id
。我不知道如何连接多个字段。我写的问题如下。如果我错了,请纠正我:

SELECT * FROM bpi_registration
            INNER JOIN bpi_teamProfile
            ON bpi_registration.id=bpi_teamProfile.id_student1
            AND bpi_registration.id=bpi_teamProfile.id_student2
            AND bpi_registration.id=bpi_teamProfile.id_student3
            AND bpi_registration.id=bpi_teamProfile.id_student4
            AND bpi_registration.id=bpi_teamProfile.id_student5
我试图以这样一种方式实现搜索过滤器:当有人单击团队下拉列表时,会显示
bpi_注册
中的
名字、姓氏、电子邮件、城市、州、国家。下面是我的PHP代码

if(isset($\u GET['Team']))
{
$sql=“从bpi\U注册中选择*
内部连接bpi\U团队配置文件
关于bpi_注册。id=bpi_teamProfile.id_student1
和bpi_registration.id=bpi_teamProfile.id_student2
和bpi_registration.id=bpi_teamProfile.id_student3
和bpi_registration.id=bpi_teamProfile.id_student4
和bpi_registration.id=bpi_teamProfile.id_student5“
$userQuery=“{$sql}其中bpi_teamProfile.team_name=:team_id”;
$user=$db->prepare($userQuery);
$user->execute(['team\u id'=>$\u GET['team']]);
$selectedUser=$user->fetch(PDO::fetch\u ASSOC);
如果(设置($selectedUser))
{
回声';
回显'.$selectedUser['first_name'].';
回显'.$selectedUser['last_name'].';
回显'.$selectedUser['email'].';
回显'.$selectedUser['address_city'].';
回显'.$selectedUser['address_state'].';
回显'.$selectedUser['address_country'].';
回声';
}

}
给定行中的学生id列似乎不太可能全部映射回同一id(在注册中)…或者查询将正确返回。如果它们不同,是否要“或”加入

SELECT * FROM bpi_registration
            INNER JOIN bpi_teamProfile
            ON (bpi_registration.id=bpi_teamProfile.id_student1)
            OR (bpi_registration.id=bpi_teamProfile.id_student2)
            OR (bpi_registration.id=bpi_teamProfile.id_student3)
            OR (bpi_registration.id=bpi_teamProfile.id_student4)
            OR (bpi_registration.id=bpi_teamProfile.id_student5)

@PiyushGupta不,我不是我认为你的问题是正确的,我们不知道你的实际需求,所以你能更新你的问题吗?……你有足够的数据库用于测试吗?@PiyushGupta我现在更新了我的问题。