![](/img/trans.png)
[英]Doctrine 2 Migrations Diff Won't Generate More Than One Foreign Key per Table
[英]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.