2015-01-22 2 views
-1

나는 당신의 도움이 필요한 문제가 있습니다.MySQL이 연결된 테이블의 날짜에 따라 최종 결과 가져 오기

예제 시나리오에 대해 설명 드리겠습니다.

가 3 표입니다 : A, B, C를 B와 C는 대일 테이블 A. 향한 관계가 B와 C 테이블은 테이블 A의 한 항목에 대해 여러 항목이 내가 가질 필요가있다 B와 C의 항목이 하나만있는 쿼리이지만 B와 C의 최신 날짜 항목이 반환되도록 항목을 선택해야합니다. B 및 C의 ID는 주문하지 않았으므로 가장 큰 ID가 올바른 것으로 보장 할 수 없기 때문에 신뢰할 수 없습니다. B 및 C 항목의 날짜는 유효한 기준입니다. 하지만 A와 B, C와,

Table A 

tableaid | Some data ... 
------------------ 
1 | .... 
2 | .... 
3 | .... 
4 | .... 
    ... 


Table B 

id | linkid | date | colb | Some data ... 
---------------------------------------------- 
1 | 1 | 01/01/2000 | A1 |  .... 
2 | 1 | 05/20/2001 | A2 |  .... 
3 | 1 | 07/10/2002 | A3 |  .... 
4 | 2 | 10/27/2000 | B1 |  .... 
5 | 2 | 01/01/2001 | B2 |  .... 
6 | 2 | 06/01/2002 | B3 |  .... 
7 | 3 | 05/01/2000 | C1 |  .... 
8 | 3 | 01/01/2003 | C2 |  .... 
9 | 4 | 05/01/2004 | D1 |  .... 
     ... 

Table C 

id | linkid | date | colc | Some data ... 
---------------------------------------------- 
1 | 1 | 01/01/2000 | a1 |  .... 
3 | 1 | 05/20/2005 | a2 |  .... 
2 | 2 | 07/10/2000 | b1 |  .... 
4 | 2 | 10/27/2003 | b2 |  .... 
8 | 2 | 01/01/2005 | b3 |  .... 
6 | 3 | 06/01/2001 | c1 |  .... 
9 | 3 | 05/01/2005 | c2 |  .... 
5 | 4 | 01/01/2000 | d1 |  .... 
7 | 4 | 05/01/2004 | d2 |  .... 
     ... 

Result 
============================================= 
tableaid | colb | colc | Some other data ... 
--------------------------------------------- 
1  | A3 | a2 | ... 
2  | B3 | b3 | ... 
3  | C2 | c2 | ... 
4  | D1 | d2 | ... 
    ... 

가 난 단지 A와 B 또는 C로이 작업을 수행하는 방법을 알고 여기에

샘플 데이터 예입니다. 어떤 도움을 주셔서 감사합니다. 나는 쿠키 :)

+0

날짜는 SQL의 특정 형식을 따릅니다. 이것은 아닙니다! – Strawberry

+0

@Strawberry 예, 동의합니다. 손으로 작성하고 잊어 버렸습니다 ... 그러나 여전히 질문의 요지는 적절한 SQL 형식 표기법의 유무에 관계없이 추론 될 수 있습니다. – StjepanV

답변

1

사용 부속 COLC에 대한

select a.*, 
(select colb from tableb b where b.linkid = a.tableaid order by b.date desc limit 1) as colb 
from tablea a 

유사한 물건

등이 있습니다.

+0

sooooo를 많이 감사합니다. 바로 그게 제가 필요로 한 것입니다! – StjepanV