2017-11-28 6 views
1

에서 ID를 사용하여 하나 개의 테이블에서 속성을 표시하는 방법 : 나는 대결 테이블을 통해 반복과 매치업을 모두 표시하고내가 Oracle 데이터베이스에 다음과 같은 테이블이 다른

CREATE TABLE Team 
(
    teamID INT NOT NULL, 
    teamName VARCHAR(50), 
    wins INT, 
    losses INT, 
    otlosses INT, 
    points INT, 
    PRIMARY KEY (teamID) 
); 


    CREATE TABLE Matchup 
     (
      matchID INT NOT NULL, 
      roundID INT NOT NULL, 
      team1ID INT NOT NULL, 
      team2ID INT NOT NULL, 
      PRIMARY KEY (matchID), 
      FOREIGN KEY (roundID) REFERENCES Round (roundID), 
      FOREIGN KEY (team1ID) REFERENCES Team (teamID), 
      FOREIGN KEY (team2ID) REFERENCES Team (teamID) 
     ); 

. 그러나 TeamID를 표시하기 만하면 Matchup 테이블에서 가져 오는 ID를 사용하여 팀 테이블에서 teamName을 표시하려고합니다.

이것은 내가 지금까지 시도했지만 작동하도록 할 수없는 것입니다.

$query = 'SELECT team1ID, team2ID FROM Matchup WHERE RoundID=1 IN (SELECT teamName FROM Team WHERE team1ID=teamID AND team2ID=teamID)'; 

당신은 한 번 각 팀 두 번 team 테이블에 두 번 가입하실 수 있습니다

<h2>Round 1 Matchups</h2> 
<table width=100%> 
<tr> 
    <th title="team1ID">Team</th> 
    <th title="team2ID">Team</th> 

</tr> 

      <?php 
      // Remember to replace 'username' and 'password'! 
      $conn = oci_connect('xx', 'xxx', '(DESCRIPTION=(ADDRESS_LIST= 
      (ADDRESS=(PROTOCOL=TCP)(Host=db2.ndsu.edu)(Port=1521))) 
      (CONNECT_DATA=(SID=cs)))'); 


     //put your query here 
     $query = 'SELECT team1ID, team2ID FROM Matchup WHERE RoundID=1 IN 
     (SELECT teamName FROM Team WHERE team1ID=teamID AND 
     team2ID=teamID)'; 
     $stid = oci_parse($conn,$query); 
     oci_execute($stid,OCI_DEFAULT); 

     //iterate through each row 
     while ($row = oci_fetch_array($stid,OCI_ASSOC)) 
     { 
     echo '<tr>'; 
     foreach ($row as $item) 
     { 
      echo '<td>' . $item . '</td>'; 
     } 
      echo '</tr>'; 

     echo '<br>';} 
     echo '</table>'; 
     oci_free_statement($stid); 
     oci_close($conn); 
     ?> 

답변

2

내 HTML 페이지에 정보를 표시하도록되어 PHP 코드의 나머지 부분입니다 :

SELECT t1.name, t2.name 
FROM match m 
JOIN team t1 ON t1.teamid = m.team1id 
JOIN team t2 ON t2.teamid = m.team2id 
WHERE roundid = 1 
+0

정확하게 t1, t2가 가리키는 것은 무엇입니까? – twolf24

+0

@ twolf24't1'과't2'는 두 개의 조인에있는 'team' 테이블의 별명입니다. – Mureinik

+0

내 HTML 페이지에 아무 것도 출력하지 않고 있습니다. – twolf24