2016-04-15 67 views
0

我有這兩個表,我想從第二個表中爲第一個表中的兩個外鍵獲取一些值。從外鍵表中檢索字段

表:

ID | Name   | No_Players | Country | F_Year | Team_Logo 
-----+---------------+------------+----------+--------+---------------------- 
1 | Real Madrid | 22  | Spain | 1940 | Http://Xyz.jpg 
2 | Arsenal  | 22  | England | 1950 | Http://XXYYZZ.jpg 
3 | FCB.Barcelona | 22  | Spain | 1960 | Http://YYZZz.jpg 
4 | Bayern Meunekh| 22  | Germany | 1940 | Http://GGG.jpg  

匹配表:

ID | Date  |First_Team  | Second_Team | M_Country |M_City | M_Period | Result 
------------------------------------------------------------------------------------------ 
1 |15-02-2016 | Real Madrid | Arsenal  | Spain  | Madrid | 120  | 1-1 
2 |19-03-2016 | FCB.Barecolna | Madrid  | Spain  | Madrid | 90  | 4-5 

而且我想要得到的Team_Logo對於每個隊在比賽表中JSON形式在這個PHP腳本。我試圖獲得團隊徽標,但不幸的是,查詢無效。

如果有人能幫助我嗎?

<?php 
require ('config.php'); 
$conn = mysqli_connect($servername, $username, $password, $db); 
$query = "select * from matches,team where matches.first_team=team.Name OR matches.second_team=team.Name"; 
$result = mysqli_query($conn, $query); 
$rows = array(); 
echo mysqli_error($conn); 

while($row = mysqli_fetch_assoc($result)) { 
    $rows[]=$row; 
} 

echo json_encode($rows); 
?> 
+0

您需要使用連接 – Nehal

回答

3
SELECT 
    matches.*, 
    t1.Team_Logo AS logo1, 
    t2.Team_Logo AS logo2 
FROM matches 
JOIN team AS t1 
    ON t1.Name = matches.First_Team 
JOIN team As t2 
    ON t2.Name = matches.Second_Team 

還要注意的是,你不應該選擇*,因爲從球隊表ID列將覆蓋匹配表的ID列。 這就是爲什麼你應該只包括你喜歡選擇的列。

+0

這是正確的查詢 –

1

你應該嘗試此查詢:

$query="select m.*,t.* from matches as m INNER JOIN on team as t1 ON m.First_Team=t1.Name JOIN team As t2 
ON m.Second_Team=t2.Name"; 
+0

這給了我一個錯誤 –

+0

您的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行的matches.first_team = team.Name或matches.second_team = team.Name'附近的團隊中使用正確的語法 –

+2

*你猜他們應該嘗試這個」*?爲什麼OP要「試試這個」?一個好的答案***將總是解釋所做的事情以及爲什麼這樣做,不僅是爲了OP,還是爲了將來訪問SO。 –

0

使用關係數據庫結構。

添加主鍵兩個表

添加第一臺在第二表作爲外鍵的主鍵的參考項。

並參考下面的查詢。

sql="SELECT * FROM Matches as m JOIN Team as t ON t.ID = m.t_id where t.id=1 OR t.id=2 
+0

這也給了我一個錯誤: 未知列「的條款」 –

+0

在「MTID」曾在你匹配表中添加「T_ID」作爲外鍵,參考來自團隊表? –