2012-03-19 5 views
2

이라는 열이 있고 mukey이라는 기본 키가있는 mapunit이라는 테이블이 있습니다.SQL : 두 테이블 간의 쿼리

SpatialJoin이라는 테이블이 있는데 기본 키는 mukey입니다. SpatialJoin의 각 행에 대해 해당하는 muname을 검색하고 싶습니다.

내가 시도 :

SELECT muname 
FROM mapunit 
WHERE EXISTS (SELECT mukey FROM SpatialJoin) 

하지만, 작동하지 않았다. 내가 내 진술을 어떻게 다시 쓸 수 있었는지에 대한 제안은 인정 될 것이다. 감사!

답변

0

이 시도 :

SELECT 
    mu.MuName, mu.mukey 
FROM 
    SpatialJoin sj 
INNER JOIN 
    Mapunit mu ON sj.mukey = mu.mukey 

INNER JOIN는 "가입"할 정의에있는 두 개의 테이블이 조건을 가입하고, 지금 당신은 당신의 SELECT에 두 테이블에서 열을 선택할 수 있습니다. INNER JOIN은 공통 컬럼 (및 공통 컬럼에서 동일한 값)을 갖는 두 테이블의 행만 조인합니다.

업데이트 : 제 3 Component 테이블에서 CompName를 얻기 위해,이 시도 :

SELECT 
    mu.MuName, mu.mukey, c.CompName 
FROM 
    SpatialJoin sj 
INNER JOIN 
    Mapunit mu ON sj.mukey = mu.mukey 
INNER JOIN 
    Component c ON sj.mukey = c.mukey 
+0

작동 할 수 시도는 도움을 주셔서 감사합니다! 하지만 지금은 구성 요소라는 다른 테이블에서 compname이라는 열을 검색하려고합니다. 구성 요소 테이블에는 mukey가 상대 키로 있고 일대 다 관계가 있습니다. SpatialJoin에서 각 행의 컴퍼니를 검색하려면 코드를 어떻게 변경해야합니까? –

+0

@HelloWorld_PyNoob : 내 응답 업데이트 –

0
SELECT m.muname 
FROM mapunit m, SpatialJoin s 
WHERE m.mukey=s.mukey 
+3

쉼표로 구분 된 방식으로 테이블 다음에 테이블을 나열하는 대신 적절한 ** ANSI 표준 JOIN 구문 ** ('INNER JOIN ....'등)을 사용하는 것이 좋습니다. ANSI 구문은 더 깨끗하고 JOIN 조건이 누락 됨으로써 원치 않는 데카르트 곱을 생성하는 경향이 있으며 WHERE 절이 더 깨끗하게 유지됩니다 (JOIN 조건은 JOIN 문 자체에 속하기 때문에) –

0

이 시도 :

SELECT b.muname 
FROM SpatialJoin a INNER JOIN mapunit b 
     on a.mukey = b.mukey 
1

을 당신은 mapunit에서에서 모든 행을 따기있어 여기서 키는 SpatialJoin에 있습니다, 당신이 원하는 것이 아닙니다.

이름을 얻는 대신 SpatialJoin에서 모든 행을 선택하십시오 그냥 mapunit에 가입;

SELECT muname 
FROM SpatialJoin sj 
JOIN mapunit mu ON mu.mukey = sj.mukey 
0
SELECT muname 
FROM SpatialJoin s 
JOIN mapunit m ON m.mukey = s.mukey 

+0

코드를 게시하면, XML 또는 데이터 샘플 ** ** 텍스트 편집기에서 해당 행을 강조 표시하고 편집기 툴바에서 "코드 샘플"버튼 ('{}) '을 클릭하여 멋지게 형식을 지정하고 구문을 강조 표시하십시오! –

+0

내가 좋아 같은 결과 –

+1

을 사용했다. 고맙습니다.. –