2011-09-29 4 views
3

안녕하세요, 데이터베이스에서 테이블을 쿼리하려고합니다. 기본적으로 team_id가 변수 $에 저장된 사용자 드라이버 ID와 동일한 테이블에서 driver_id를 선택해야합니다. user_driver_one. 그래서 같은 team_id를 가진 다른 드라이버를 선택합니다. MYSQL SELECT QUERY where column is same

column driver_id 1 2 3 4 5 6 7 8 9 10 

    column team_id 3 3 2 2 1 1 4 4 5 5 

그래서 사용자는 $ user_driver_one = 4를 가질 수있다, 그래서 driver_id 3 같은 team_id이 있기 때문에 나는, 쿼리에 driver_id = 3을 선택해야합니다.

나는 이것에 문제가있어, 어떤 도움을 많이 주시면 감사하겠습니다.

+0

대신에 $ user_driver_one를 사용할 수 있습니다. 왜 그들의 팀과 같은 이드를 가진 사람들을 원하니? 코드 냄새 같아. –

+0

기본적으로 드라이버는 모두 팀에 속합니다. 이것은 공식 1입니다. 사용자는 3 개의 드라이버를 선택하므로 쿼리에서 사용자가 선택한 드라이버의 팀원을 선택할 수 있어야합니다. – user970117

+0

질문을 편집 한 후 답변을 업데이트했습니다. 건배. –

답변

4

당신이 매개 변수

$user_driver_one = (int) $user_driver_one; 

MySQL을 탈출해야합니다 :

"SELECT `driver_id` 
FROM `table` 
WHERE `team_id` = (
    SELECT `team_id` 
    FROM `table` 
    WHERE `driver_id` = '$user_driver_one' 
    LIMIT 1 
    ) 
AND `driver_id` != '$user_driver_one'"; 
+0

완벽! 고마워요.이게 정확히 그 거예요. – user970117

+0

문제가 없습니다! 하나 또는 두 시간 정도의 시간을 들여 하위 쿼리 및 조인 기본 사항을 익히면 SQL에 대한 자신감이 훨씬 높아집니다. –

1
SELECT driver_id FROM T1 WHERE team_id = driver_id AND team_id = @user_driver_one 
0

당신이 거 사용 PHP라면 그 결과는 다음과 같습니다의

mysql_query("SELECT driver_id FROM tablename WHERE team_id = '$user_driver_one'"); 

물론, 쿼리를하기 전에 약간의 위생이 될 것입니다. smart, 특히 사용자 입력에서 $ user_driver_one 변수를 할당하는 경우에 유용합니다.

0
select driver_id from yourtablename where team_id in (select team_id from yourtablename where driver_id=4)and driver_id!=4 

당신은 내가 driver_id team_id 사이의 관계가 무엇인지 궁금 4