2013-04-16 6 views
-2

저는 여기에 내 머리가 조금이라도 있다고 생각합니다. 정말 도움이된다고 생각합니다! :)mysql에서 다른 테이블의 값으로 외래 키 열을 채우십시오.

나는이 MySQL을 데이터베이스의 두 테이블이 있습니다

Database A.Table A 
id (int) 
name (varchar) 

Database B.Table B 
id (int) 
name (varchar) 
foreign key1 (int) 
foreign key2 (int) 
나는 결과가 여전히 올바른 될 수 있도록, SELECT * FROM 같은 MySQL의 쿼리를하고 싶습니다

심지어 일부 여분의 열 경우 나중에 추가됩니다. 그러나 표 B의 외래 키를 테이블 A의 해당 varchar 이름으로 바꿔야합니다. 두 외래 키는 동일한 테이블을 가리키고 있지만 사람이 어디에 있는지, 그리고 그가 속한 위치를 나타내므로 다를 수 있습니다.

SELECT * FROM tblA RIGHT JOIN tblB ON tblA.id = tblB.foreignkey1 

을하지만 내가 달성하기 위해 노력하고있어없는 것 인 결과 집합에 다른 열을 추가

나는 이것을 시도했습니다.

쿼리 tbl.B는 tbl.B (내가 여기 찾고 있어요 마법을 추가) FROM 그래서 SELECT *처럼, 최종 결과는 지금과 같이해야하는 경우 :이 같은 일을 할 수

*--------*----------*--------------------------*---------------------------* 
|tblB.id | tblB.name| foreign value1 from tbl.A | foreign value2 from tbl.A| 
*--------*----------*--------------------------*---------------------------* 
+0

"SELECT * FROM과 같은 MySQL 쿼리를 만들어 나중에 추가 된 열이 추가 되더라도 결과가 정확합니다." * 테이블에 열을 추가하는 것은 기존의 SELECT 쿼리에 영향을 미치지 않으므로 잘못 이해해야합니다. – RandomSeed

+0

내가 의미하는 바는 나중에 모든 열과 함께 "Select tbl.value as name"이 아니기 때문에 나중에 다른 열을 추가하면 자동으로 결과 집합의 일부가됩니다. – Fireworm

+0

I 'm 내가 당신의 질문을 이해하는지 모르겠다. 추가하는 열은 무엇입니까? 위의 표를 사용하여 출력물을 어떻게 보이게 할 수 있습니까? – ArchiFloyd

답변

1

:

SELECT tblB.id, tblB.name, tblA.* -- all fields in tblA 
FROM tblA RIGHT JOIN tblB ON tblA.id = tblB.foreignkey1 

...하지만 이것은 거의 내가 생각할 수있는 모든 것입니다. 안타깝게도 SELECT * 또는 SELECT [each and every column]을 사용해야하며 대안이 없습니다.

관련 문제