[완료] MySQL에서 두 테이블 합쳐서 쿼리하기..
글쓴이: calvinpark / 작성시간: 화, 2007/07/17 - 12:54오전
안녕하세요
테이블 A.
+----+---------+-----------+ | id | content | timestamp | +----+---------+-----------+ | 1 | "A11" | 3 | +----+---------+-----------+ | 2 | "A22" | 5 | +----+---------+-----------+ | 3 | "A33" | 7 | +----+---------+-----------+
테이블 B.
+----+---------+-----------+-----+ | id | content | timestamp | idA | +----+---------+-----------+-----+ | 1 | "B22" | 8 | 2 | +----+---------+-----------+-----+
여기서 아래같은 데이터를 어떻게 해야 뽑아낼지 도통 대책이 안섭니다..
+-------------------+------------------------------------------+-----------+ DISTINCT | A.id와 idA의 집합 | (A.timestamp와 B.timestamp의 집합) AS ts | A.content | ORDER BY ts DESC +-------------------+------------------------------------------+-----------+ | 2 | 8 | "A22" | +-------------------+------------------------------------------+-----------+ | 3 | 7 | "A11" | +-------------------+------------------------------------------+-----------+ | 1 | 3 | "A33" | +-------------------+------------------------------------------+-----------+
다르게 설명하자면 두 테이블의 비슷한 필드를 병합시키고(A.id+idA, A.timestamp+B.timestamp), 병합된 필드로 정렬을 시킨 후(ORDER BY ts DESC), 그 순서로 다른 병합된 필드(A.id+idA)와 그에따른 내용(A.content)을 뽑아내는거죠.
하다하다 모르겠어서 여기가 이런 질문 하는덴지도 모르겠지만 일단 부탁드려봅니다.
아시는분 제발좀 도와주세요 ㅠㅠ
감사합니닷..
Forums:
흠....
id와 idA를 조인시키면 끝.
timestamp가 설마 다르진 않겠죠? 같다면 하나만 써서 as로 리네임 해주면 되니 -_-;;
다르다면 유니온으로 id, timestamp, content를 각각 구해서 유니온 하고 그결과를 order by 하면 될것같네요.
근데 다르다면 결과가 좀 이상할 것같은데...;;;흠흠;;;
해볼게요..
해볼게요.. 감사합니다..
select A.id,
select A.id, ifnull(A.timestamp, A.timestamp) as ts, a.content from A left join B on A.id = B.idA order by ts desc
마지막에 그려져있는 데이터와 똑같이 나옵니다.
오오오 감사합니다
오오오 감사합니다
댓글 달기