2011-11-03 19 views
0

이 SQL 쿼리가 있고 그 결과 바로 아래에 다른 쿼리가 있습니다. 나는 그들을 병합하고 싶지만 혼란스러워지고있다. 초보자이다.SQL 다중 조인 쿼리

USERS와 PLAYERS 테이블의 첫 번째 쿼리 인 3 개의 테이블에서 데이터를 가져옵니다. 그런 다음 플레이어가 '팀'에 속하면 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에서는 users. * (사용자 테이블에서 모두 가져 오기), players.name, players.skill (플레이어 이름과 기술 만 가져 오기), team.tag (태그 만 가져 오기) 팀 테이블). 그럼 당신은 SELECT 사용자입니다. *, player.name, player.skill, team.tag FROM ... –

+0

그래, 전에 그랬지만 오류가 있었는데, 다시 시도해보십시오 ... 그래, 오류. 유효한 결과 자원을 말하지 않습니다. – user1022585