2010-12-04 7 views
0

기본적으로 사용자 벽에 표시하려는 항목에는 평가, 설명 및 업데이트라는 세 가지 클래스가 있습니다. 이 세 가지는 완전히 다른 엔티티이지만 사용자 벽에 모두 표시 될 수 있기 때문에 단지 "벽 타일"이라고 부릅니다. 모두에는 생성 된 날짜를 나타내는 timestamp 속성이 있습니다.MySQL : 하나의 쿼리에서 다른 엔티티 병합

사용자가 타임 스탬프로 정렬 된 wallitem을 통해 페이지 할 수있게하고 싶습니다. 예 : 최근 10 개의 wallitem. 또는 wallitems 20 to 30. 모든 다른 엔티티가 다른 열을 가지고 있음에도 불구하고 지난 10 개의 "wallitems"를 제공하는 MySQL Query가 있습니까?

각 항목이 모든 엔티티의 모든 속성을 갖고있는 항목 목록을 얻는 것, 유형을 정의하는 추가 속성 (예 : "rating"), 실제로 등급 인 경우 모두를 상상할 수 있습니다. 다른 속성은 null입니다. 내 PHP 코드에서 이러한 dicationary를 사용 싶어요 :

foreach ($wallItemArray as $item) { 
    if ($item['type'] == "rating") { 
    $rating = $item; // use it as normal "rating"-entity 
    } else if ($item['type'] == "comment") { 
    $comment = $item; // use it as normal "comment" 
    } 
// and so on for all different entities that could represent a wallitem in this context 
} 
+0

을 시작하는 것? – thejh

답변

2

뭔가

SELECT 'rating' AS type, value AS r_val, NULL AS c_val 
FROM Rating 

UNION 

SELECT 'comment' AS type, NULL AS r_val, comment_text AS c_val 
FROM Comment 

처럼 어쩌면 노동 조합은 선택

관련 문제