簡體   English   中英

同一張表中有多個外鍵

[英]More than one Foreign Key from the same table

我對此MySQL陳述有疑問。 所以基本上我有一個叫做游戲的桌子,我想在我的網站上顯示這個桌子。 桌上游戲具有Foregin鍵,例如developer_id,publisher_id,categorie_id,platform1_id,platform2_id,platform3_id,platform4_id,platform5_id。 我有5個平台,因為在Table平台上我有5個記錄(PC,PS4,XB1,SWITCH,MOBILE)。 (如果你們知道對這些平台有任何更好,更輕松的解決方案,請告訴我。)因此,現在我在網站上的輸出正常了,但是例如,不顯示開發人員名稱而是顯示ID。 我知道我必須INNER JOIN他們,我大概可以INNER JOIN除了平台的所有所有原本的鑰匙。 因為我不知道如何從一個表中加入一個FK。

如果您需要更多信息,請告訴我。 我還將在桌面游戲中選擇的地方包括我的數據庫圖片和PHP代碼。

$query = "SELECT * FROM games WHERE id = $id";
$result = mysqli_query($link, $query) or die(mysqli_error($link));

while ($row = mysqli_fetch_array($result)) {
    echo '<tr>';
    echo '<td>'.$row['developer_id'].'</td>';
    echo '<td>'.$row['publisher_id'].'</td>';
    echo '<td>'.$row['categorie_id'].'</td>';
    echo '<td>'.$row['platform1_id'].'</td>';
    echo '<td>'.$row['platform2_id'].'</td>';
    echo '<td>'.$row['platform3_id'].'</td>';
    echo '<td>'.$row['platform4_id'].'</td>';
    echo '<td>'.$row['platform5_id'].'</td>';
    echo '<td>'.$row['game_name'].'</td>';
    echo '<td>'.$row['relese_date'].'</td>';
    $intro = $row['introduction'];
    $desc = $row['description'];
    echo '<td>'.$row['rating'].'</td>';
    echo '</tr>'; 
}

我的數據庫圖片

SELECT games.game_name, games.relese_date, games.introduction, games.rating, games.description, dev.name as developer, pub.name as publisher, (SELECT * FROM platforms WHERE platforms.id in (games.platform1_id,games.platform2_id,games.platform3_id,games.platform4_id,games.platform5_id)) as plats 
FROM games 
    INNER JOIN developers AS dev ON dev.id = games.developer_id 
    INNER JOIN publishers AS pub ON pub.id = games.publisher_id 
WHERE games.id = $id

請記住,平台將在屬性平台下被列為一個集合,並且這些項目中的每一個都將是as屬性的對象。

EX

  return object=>
      developer_id
      publisher_id
      categorie_id
      plats => [
        platform1_id=>name, 
        platform2_id=>name, 
        platform3_id=>name, 
        platform4_id=>name, 
        platform5_id=>name
      ]
      game_name
      relese_date
      introduction
      description
      rating

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM