2011-11-03 133 views
0

我有這個SQL查詢,並直接在它下面,根據結果的另一個查詢。 我想合併它們,但即時通訊變得困惑,作爲一個新手。SQL多重連接查詢

它從3個表中提取數據 - 來自USERS和PLAYERS表的第一個查詢。然後,如果玩家處於「團隊」中,則會從TEAMS表中獲取標記。

我的代碼:

$sql_result4=mysql_query("SELECT * FROM users JOIN players ON users.player=players.name WHERE users.id='$id'"); 
$rs4 = mysql_fetch_array($sql_result4); 

if ($rs4[team] !=0) { 
$sql_result = mysql_query("SELECT tag FROM teams WHERE id='$rs4[team]'", $db); 
    $rs = mysql_fetch_array($sql_result); 
    // get data 
} 

我的問題是,我怎麼能合併,在與第一第二查詢?我甚至使用正確的加入?

我希望能夠使用PLAYERS表中的大量數據,但只能從USERS和TEAMS表中選擇一個或兩個列。

回答

1

只需使用左連接即可。

SELECT ... 
FROM users u 
    JOIN players p ON u.player = p.name 
    LEFT JOIN teams t ON p.team = t.id 
WHERE u.id = ? 
+0

你可以更新它來指定我如何選擇我從每個表中拉出哪些字段?謝謝:D – user1022585

+0

在SELECT中,你可以擁有用戶。*(從用戶表中獲取所有),players.name,players.skill(僅獲得玩家的名字和技能),然後是team.tag(僅獲得標籤團隊表)。 所以,你有什麼是SELECT用戶。*,player.name,player.skill,team.tag FROM ... –

+0

是的,我曾嘗試過,但有錯誤,讓我再試一次...是的,錯誤。說不是有效的結果資源。 – user1022585