2017-11-28 2 views
0

두 번째 표의 열의 "where"로 한 표를 조회 한 결과를 사용하려고합니다. 이것이 제가 시도한 것입니다 :다른 표의 선택 결과를 기반으로 두 번째 표 열에서 선택하십시오.

SELECT channel 
FROM shows 
WHERE ID ='36741' 

이것은 "Discovery"결과입니다. 테이블 "쇼"에있는 "채널"의 모든 행은 "cccservices"테이블의 열입니다. 나는 다음 수행해야합니다

SELECT service 
FROM cccservices 
WHERE (Select channel from shows where ID='36741')='x' 

하지만 난 뭔가를 누락 확신 :

SELECT service 
FROM cccservices 
WHERE Discovery='x' 

나는이 시도했습니다. 그 ID는 사용자 제출 양식에 의해 나에게 주어집니다.

답변

0

나는 아직도 내 학위를 받고 있는데이 쿼리의 컨텍스트에 대해서는 전혀 몰라하지만 귀하의 진술을 보면이 쿼리가 성능면에서 좋지 않을까요?

SELECT service 
FROM cccservices 
INNER JOIN shows ON (ID = '36741' AND Discovery = 'x' AND ID = Discovery); 

당신은 내게 그에게 나는 그것을 내가이 갈 것입니다 다른 시간에 읽은 후 :

SELECT service 
FROM cccservices 
WHERE ((Select channel from shows where ID='36741')='x' AND Discovery ='x'); 

3보십시오 :

SELECT service 
FROM cccservices 
WHERE ((Select channel from shows where ID='36741') = Discovery 
    AND Discovery LIKE '%x%'); 

4 TRY

SELECT service 
FROM cccservices 
INNER JOIN cccservices ON ((SELECT channel FROM shows INNER JOIN shows ON (ID='36741')) LIKE '%x%'); 

을 이것은 당신에게 열을 반환하고 당신은 x를 포함하도록 지정하십시오. 나는 당신이 여기에 아무것도 놓치지 않은 것 같아요 ... 그리고 당신의 쿼리는 꽤 비슷했습니다!

5보십시오 : 나는 비록 첫 번째 쿼리를 실행할 때까지

SELECT cccs1.service 
FROM cccservices cccs1 
INNER JOIN cccservices cccs2 ON ((SELECT s1.channel FROM shows s1 INNER JOIN 
shows s2 ON (ID='36741')) LIKE '%x%'); 
+0

내가 "발견"을 알지 못한다. 쿼리 전에 유일하게 알려진 값은 –

+0

입니다. SELECT service from cccservices WHERE ((ID = '36741'= 'x'AND Discovery = 'x'인 쇼에서 채널 선택)); "x"가 Discovery에서 "comming"이라고 말하지 않았습니다. – Jo4nP4l4u

+0

첫 번째 결과로 찾은 "cccservices"테이블의 열에서 'x'가 포함 된 각 행의 이름을 알아야합니다. 질문. 따라서 첫 번째 선택 결과 "발견"다음에 "발견"열 아래에 "x"가있는 "cccservices"테이블의 모든 행을 알아야합니다. 그게 더 합리적입니까? –