2009-12-14 6 views

답변

6

당신은 같은 조인으로 그것을 쓸 수 있습니다 : 여기

SELECT * 
FROM jobs j 
JOIN advertisers a 
ON  a.advertiser_id = j.advertiser_id 
+2

참고 대답의 간결하고 당신은 여전히에서 선택된 모든 열을 명시해야 귀하의 응용 프로그램 (귀하의 질문에 -'선택 j.job_id AS job_name, ... '). – soulmerge

1
SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, j.time_added, j.active, j.moderated from 
jobs j join advertisers a 
on a.advertiser_id = j.advertiser_id 
+2

'FROM'데이터를 가져올 테이블을 지정하지 않고도이 작업을 수행 할 수 있습니까? – random

+0

아, 오타! 어떻게 든 '~'과 '~'이 형식을 적용했을 때 사라졌습니다. – Graviton

+0

답변을 편집하여 다시 추가 할 수 있어야합니다. – peacedog

2

가 정교하게 연결하는 몇 가지 예는 다음과 같습니다

귀하의 예 그러나 내부 JOIN-, 당신은 여기에 "암시 적 조인 표기법"을 사용하면 명시 적으로 다음과 같이 표기 할 수 있습니다.

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated 
FROM jobs j 
    INNER JOIN advertisers a 
    ON j.advertiser_id = a.advertiser_id 

원하는 결과에 따라 대신 OUTER JOIN을 사용할 수 있습니다. INNER JOIN과의 차이점은 INNER JOIN은 다른 테이블에 일치하는 레코드가있는 레코드 만 찾습니다. 반대로 OUTER JOIN을 사용하면 작업 테이블이나 광고주 테이블의 레코드가 다른 테이블에 해당 레코드가없는 경우 표시되도록 지정할 수 있습니다. 에 관계없이의

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated 
FROM jobs j 
    LEFT OUTER JOIN advertisers a 
    ON j.advertiser_id = a.advertiser_id 

이 쿼리는하지만, 광고주 테이블의 모든 레코드를 찾을 수 :

이 예에서

, 쿼리는 광고주 테이블에서 일치에 관계없이 작업 테이블의 모든 레코드를 찾을 수 작업 표에서 일치 :

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated 
FROM jobs j 
    RIGHT OUTER JOIN advertisers a 
    ON j.advertiser_id = a.advertiser_id 

왼쪽 또는 오른쪽은 '='테이블의 어느쪽에 해당하는지 나타냅니다.

완전 외부는 경기에 관계없이 각 테이블의 모든 레코드를 반환합니다 가입 : 별이 (``SELECT *) 것을

SELECT j.job_id, j.name AS job_name, a.name AS advertiser_name, 
j.time_added, j.active, j.moderated 
FROM jobs j 
    FULL OUTER JOIN advertisers a 
    ON j.advertiser_id = a.advertiser_id 
관련 문제