2011-11-03 142 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