2011-08-26 3 views
0

Google은 2 시간 동안 Google을 검색했으며 간단하다고 생각합니다. 나는 4 개의 테이블을 가지고 있으며, 아래 4 개의 테이블을 결합하여 모든 테이블의 모든 행을 가지고 있습니다. 나는 모든 결과가 모든 다른 테이블에있는 b를 기반으로 모든 행에서 table5의 FullName을 표시하도록 FullName의 1 개의 추가 열을 추가하는 방법을 알아 내려고하고 있습니다. 나는 이것이 누군가에게 의미가 있기를 바랍니다.5 테이블에 대한 mysql 쿼리

SELECT a, b, NULL AS Name FROM table1 
union SELECT a, b, NULL AS Name FROM table2 
union SELECT a, b, NULL AS Name FROM table3 
union SELECT a, b, NULL AS Name FROM table4 
union SELECT NULL AS a, b, FullName FROM table5 where 

..... b를

답변

1
SELECT unions.*, tb5.FullName 
FROM (
SELECT a, b FROM table1 
union SELECT a, b FROM table2 
union SELECT a, b FROM table3 
union SELECT a, b FROM table4 
union SELECT a, b FROM table5 
) AS unions 
JOIN table5 AS tb5 ON unions.b = tb5.b 

가 작동 할 수 있음 이전 4 select 문에있는 B와 같다?

수정 :

+0

감사합니다. 작동하지만 추가 행을 반환합니다. 이유를 모르겠다. 나는 그것이 내 데이터가 아니기 때문에 내가 통제 할 수없는 값 b에 대해 table5에 몇 개의 중복이 있기 때문에 그것이있을 것이라고 생각한다. 쿼리 끝에 unions.b에 의해 그룹을 추가하려고 시도했지만 너무 적은 행을 반환합니다. 어떤 아이디어라도 ... – user913343

+0

당신은 "뚜렷한"시도를 할 수 있습니다. 그러나 가능하다면 테이블 구조를 변경해야합니다. 실제로 엉망이 된 것처럼 들립니다. – Matthew

+0

그래, 내가 시도하고 엉망이지만, 나는 다른 사람의 가난한 계획의 희생자이다. 도와 주셔서 감사합니다. – user913343

관련 문제