2010-06-18 4 views
0

HI에서 서로 다른 두 가지 값을 보여, 난 1- 이름, ID 코드 2- ID, 값, 개념가 동일한 필드

하나의 이름 두 개념 및 두 개의 값을 가질 수있는 두 테이블을 가지고있다. 나는 이것을 찾아보고 싶다 : 아이디, 이름, 값 1, 값 2.

어떻게 할 수 있습니까?

탱크

+0

테이블 1과 테이블 2를 연결하는 데 사용되는 필드는 무엇입니까? 아니면 이드가 공통 키입니까? –

+0

이 질문을 명확히하십시오. 두 테이블에서 JOIN 연산을 수행하고 id로 결합하고자하는 것 같습니다. – Alex

답변

0

당신은 예를

SELECT t.id, t.name, t.value as value1, t2.value as value2 
FROM table2 as t 
    INNER JOIN table2 as t2 ON t.id = t2.id AND t.value <> t2.value 

을 위해 할 수 있지만, 가능한 많은 다른 방법이있다.

편집

SELECT t1.id, t1.name, t2a.value as value1, t2b.value as value2 
FROM table1 as t 
    INNER JOIN table2 as t2a ON t.id = t2a.id 
    INNER JOIN table2 as t2b ON t.id = tba.id AND t2b.value <> t2a.value 

참고 : 솔루션이 시작됩니다

+0

은 그가 언급 한 두 번째 테이블 만 사용하고 '이름'열이 첫 번째 테이블에있는 것을 제외하고는보기에 좋습니다. 내가 추가 할 수있는 유일한 것은 table1.id = table2.id의 t1로 table1과 다른 조인을하기 때문에 t1.name이라는 이름 필드를 가지게됩니다. – Kyra

+0

네가 맞다. 나는 missread ...를 업데이트했다. – Unreason

1

(당신이 결과에 ID 당 여러 행을 얻을 것이다 3 행의 경우) 아이디 당 2 개 행이 있다고 가정합니다 :

SELECT 
    T.id, 
    T.name, 
    V1.value AS value1, 
    V2.value AS value2 
FROM 
    My_Table T 
LEFT OUTER JOIN My_Values V1 ON V1.id = T.id 
LEFT OUTER JOIN My_Values V2 ON V1.id = T.id 

그러나 여기서 질문 1은 값 1과 값 2를 어떻게 구별합니까? 그것은 "개념"의 가치인가? 그것은 문제가 DB에 먼저 추가 되었는가? 어떤 다른 열에 더 높은 ID 열이 있습니까? 귀하의 요구 사항이 완전히 설명되어 있지 않습니다.

관련 문제