2012-10-24 6 views
1

5 가지 테이블을 조인하려고합니다. 그들은 각각 그들 모두에 대해 완전히 같은 아무것도하는Mysql 여러 테이블 조인

이름 열, ID 열 및보다

다른 특급 열 수 있습니다.

SELECT name FROM `weapons`,`arrows`,`trees`,`ores`,`bars` ORDER BY exp DESC 

이름이 모호합니다. 감사!

이것은 내가 당신이 컬럼에 테이블 이름을 추가 할 필요가 같은 이름의 열이있는 경우 하나 개의 큰 목록

+0

JOIN 대신 UNION을 사용 하시겠습니까? – jmoerdyk

+0

나는 내가 무엇이 필요한지 전혀 모른다. hah .... –

+0

@ AlanBowen 샘플 데이터를 게시하고 원하는 결과를 게시 한 다음 결과를 얻을 수있는 답변을 얻으십시오. – Taryn

답변

0

당신은 당신이 name 예를 검색 할,있는 테이블을 식별하는 하나의 테이블 접두사를 사용할 수 있습니다 않는 weaponsarrows 테이블의 name 열을 선택합니다 아래 :

나는 당신이 가입 조건을 잃어 버렸다고 생각한다.

귀하의 질문은 다음과 같은 모양입니다 :

SELECT w.name 
FROM weapons w JOIN arrows a 
    ON w.id = a.id 
    JOIN trees t 
    ON a.id = t.id 
    JOIN ores o 
    ON t.id = o.id 
    JOIN bars b 
    ON o.id = b.id 
ORDER BY exp DESC; 

아니면 다음 union --> combine rows from all tables을 원한다면 : 당신은 하나 개의 큰 목록을 찾고 있다면

SELECT name 
FROM weapons 
UNION ALL 
SELECT name 
FROM arrows 
UNION ALL 
SELECT name 
FROM trees 
UNION ALL 
SELECT name 
FROM ores 
UNION ALL 
SELECT name 
FROM bars; 
1

에 결합하기 위해 노력하고있어 5 개 별도의 사용자 테이블과 같다. 테이블에 대한 별칭 이름을 사용하고 쿼리를 단축 할 수도 있습니다.

당신은

SELECT w.name, a.name 
FROM `weapons` as w, `arrows` as a,`trees` as t,`ores` ass o,`bars` as b 
ORDER BY exp DESC 
+0

테이블의 이름이 같은 테이블이 없습니다. –

+0

'weapons.name as WeaponsName, arrows.name as ArrowsName'의 테이블이 무엇인지 알 수 있도록 열 이름에 별칭을 추가합니다. – Taryn

+0

@AlanBowen : 그러나 열의 이름은 동일합니다. 당신은 DB 엔진에게 당신이 원하는'name' 컬럼을 어느 테이블에서 요구할 필요가있다. –

0

, 당신은 노조에 원하는 테이블이 아니라 JOIN.

SELECT * FROM weapons 
UNION 
SELECT * FROM arrows 
UNION 
SELECT * FROM trees 
UNION 
SELECT * FROM ores 
UNION 
SELECT * FROM bars; 

그리고 당신은 하나 개의 큰 목록을 원하는 경우에 당신은 단지, SELECT name 대신 SELECT *

0

의 이름을 원하는 경우, 당신은 사용하여 다음을 수행 할 수 있습니다

select name, id, exp, 'weapons' as TableFrom 
from weapons 
union all 
select name, id, exp, 'arrows' as TableFrom 
from arrows 
union all 
select name, id, exp, 'trees' as TableFrom 
from trees 
union all 
select name, id, exp, 'ores' as TableFrom 
from ores 
union all 
select name, id, exp, 'bars' as TableFrom 
from bars 
order by 3 

내가 도울 수있는 마지막 열을 추가 데이터가 나오는 테이블을 식별하십시오. 너가 그것을 원하지 않으면, 너는 그것을 떨어 뜨릴 수있다.