2017-12-10 1 views
1

안녕하세요 여러분! 테이블에는 3 개의 열만 있습니다 ('playerID', 'teamID'및 'yearID')다른 열과 동일한 속성을 가진 하나의 열을 선택하십시오.

같은 해를 가진 열을 한 선수의 같은 팀에서 가져오고 싶습니다. 당신은 다음과 같은 코드를 볼 수 있습니다

Select playerID, teamID, yearID 
FROM `appearancessmall` 
WHERE (teamID IN 
(SELECT teamID from `appearancessmall` WHERE playerID = 'napolmi01') 
) AND 
(yearID IN (SELECT yearID from `appearancessmall` WHERE playerID = 
'napolmi01') 
) 

그러나 쿼리의 출력이 같은 teamID 또는 선수 "napolmi01"와 같은 yearID이 총 열입니다, 제가 원하는 것은 선택 열입니다해야 동시에 두 가지 요구 사항을 충족시킵니다. 그렇게하는 법?

+0

에 해보기 JOINs에 대해 읽어보십시오 – Strawberry

답변

-1

2 개 서브 질의를 결합 함과 동시에 두 열을 비교해보십시오

SELECT 
    playerID 
, teamID 
, yearID 
FROM `appearancessmall` 
WHERE 
    (teamID,yearID) IN (
    SELECT teamID,yearID 
    FROM `appearancessmall` 
    WHERE playerID = 'napolmi01' 
    ) 
+0

감사합니다! 나는 그것이 실제로 작동하는 코드를 테스트한다. –

0

시도는 아래의 예에서처럼 LEFT JOIN를 사용

SELECT `et`.* FROM `test` `t` 
LEFT JOIN `test` `et` 
ON `t`.`teamID`=`et`.`teamID` AND `t`.`yearID`=`et`.`yearID` 
WHERE `t`.`playerID`='napolmi01'; 

SQL Fiddle

+0

다른 방법으로 답해 주셔서 감사합니다. 테스트 해보니 정말 좋았지 만 @ Used_By_ 이미 조금 더 일찍 답장을 받았습니다. 용서해주세요. 용서해주세요. 고맙습니다. ! –

+0

@ JacksonTom 내 검색어 만이 유일한 대안 방법은 아니지만 더 많은 것이 있습니다. 이 경우 조인을 사용하는 것이 더 적합하지만. 어쨌든 건배 :) –

관련 문제