2016-04-02 17 views
4

2つのテーブルbpi_registrationとbpi_teamProfileがあります。 bpi_registrationのフィールドはid, id_school, first_name,last_name,email,city,state,countryであり、bpi_teamProfileテーブルのフィールドはid_team, team_name, id_student1, id_student2, id_student3です。id_student1、id_student2、id_student3には、bpi_registrationにあった学生の同じidが含まれています。私は複数のフィールドを接続する方法がわかりません。私が書いた質問は以下の通りです。私は誰かがチームのドロップダウンをクリックしたときに、その後bpi_registrationからfirstname,lastname,email,city,state,countryが現れるように検索フィルタを実装しようとしています検索フィルタの複数の共通フィールドを持つ2つのテーブルを結合する方法

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 

:私が間違っているなら、私を修正してください。私は望ましい結果を得ることができないのですがhttps://www.example.com/retrieve1.php?Grade=&School=&Team=mary+winners&Students=

- 以下の私のPHPコードは、我々は次のようになり、チームのフィルタをクリックすると、URLが見え

if (isset($_GET['Team'])) 
 
{ 
 

 
    \t \t 
 
    \t \t 
 
    $sql="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" 
 
      
 
    $userQuery = "{$sql} WHERE bpi_teamProfile.team_name = :team_id"; 
 
    $user = $db->prepare($userQuery); 
 
    $user->execute(['team_id' => $_GET['Team']]); 
 
    $selectedUser=$user->fetch(PDO::FETCH_ASSOC); 
 
\t 
 

 
    if(isset($selectedUser)) 
 
    { 
 
     echo '<tr>'; 
 
     echo '<td>' . $selectedUser['first_name'] . '</td>'; 
 
     echo '<td>' . $selectedUser['last_name'] . '</td>'; 
 
     echo '<td>' . $selectedUser['email'] . '</td>'; 
 
     echo '<td>' . $selectedUser['address_city'] . '</td>'; 
 
     echo '<td>' . $selectedUser['address_state'] . '</td>'; 
 
     echo '<td>' . $selectedUser['address_country'] . '</td>'; 
 
    echo '</tr>'; 
 
    } 
 
}

です。

+0

@PiyushGuptaには、私は – Junior

+0

ないです私は?あなたのクエリが正しいか、私たちはあなたの実際の要件は、あなたがあなたの質問を更新することができます知っていないと思うん.....とテストの目的のためにあなたの十分なデータベースを持っていますか? –

+0

@PiyushGupta今質問を更新しました。 – Junior

答えて

2

特定の行の学生ID列がすべてに同じID(登録時)にマップされている可能性は低いです...またはクエリが正しく返されます。それらが異なる場合は、結合を 'OR'したいですか?

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) 
+0

これは私の問題を解決... thnxトン – Junior

関連する問題