2017-03-23 1 views
0

표 1방법을 하나 개의 테이블

id name 
1 Av1 
2 Av2 

표 2

id name1 name2 
1 1  2 

내가 좋아하는 table1.id에 따라 이름을 원

출력에서 ​​두 개의 열 열쇠를 얻을 수

id name1 name2 
1 Av1 Av2 
+4

는 지금까지 시도 무엇입니까? – Jens

+0

두 개의'JOIN'을 사용하십시오. –

+0

단순한 조인은 없지만 table2의 이름을 얻는 동안 테이블 1의 열 이름이 같기 때문에 아무 것도 작동하지 않습니다. –

답변

2

가입 필요 table1 tw 얼음, 예컨대 :

SELECT t2.id, t1.name,t11.name 
FROM table2 t2 
INNER JOIN table1 t1 ON t2.name1 = t1.id 
INNER JOIN table1 t11 ON t2.name2 = t11.id 
+0

모자를 벗고 .. 훌륭한 근무. 하지만 이제는 어떻게 t2에 WHERE 절을 설정할 수 있습니까 –

+0

WHERE t2.somefield = somevalue'를 쿼리에 추가 할 수 있습니다 –

+0

SELECT t2.id, t1.name, t11.name FROM table2 t2 JOIN table1 t1 ON t2.name1 t1.id 및 t2.somefeild = 10 JOIN table1 t11 ON t2.name2 = t11.id 및 t2.somefeild = 10 이 정보가 정확합니까? 내 결과가 완벽 해. –

3

는 그것을 시도 :

SELECT table2.id as id, t1_1.name as name1, t1_2.name as name2 FROM table2 table2 
LEFT JOIN table1 t1_1 ON table2.name1 = t1_1.id 
LEFT JOIN table1 t1_2 ON table2.name2 = t1_2.id 
2
select t2.id, n1.name as name1, n2.name as name2 
from table2 t2 
    left join table1 n1 on n1.id = t2.name1 
    left join table1 n2 on n2.id = t2.name2 
+0

브 로치가 작동하지 않습니다. –

0
Use below query : 

CREATE TABLE #tbl1(Id INT , Name VARCHAR(100)) 
CREATE TABLE #tbl2( Id INT , Name1 INT, Name2 INT) 

INSERT INTO #tbl1(Id , Name) 
SELECT 1,'Av1' UNION ALL 
SELECT 2,'Av2' 

INSERT INTO #tbl2(Id , Name1 , Name2) 
SELECT 1,1,2 

SELECT T2.Id , T2.Name , T3.Name 
FROM #tbl2 T1 
LEFT OUTER JOIN #tbl1 T2 ON T1.Name1 = T2.Id 
LEFT OUTER JOIN #tbl1 T3 ON T1.Name2 = T3.Id 
관련 문제