2010-12-04 16 views
0

私は基本的に、ユーザーの壁に表示する3つの異なるクラスのアイテムを評価、コメント、更新しています。この3つは完全に異なるエンティティですが、それらはすべてユーザーの壁に表示されるため、単に「ウォールアイテム」と呼びます。これらのすべてには、作成された日付を表すtimestampプロパティがあります。MySQL:1つのクエリで異なるエンティティをマージする

タイムスタンプ順に並べ替えることができます。たとえば、最後の10個の壁アイテム。またはwallitems 20から30.すべての異なるエンティティが異なる列を持っていても、私に最後の10の "wallitems"を与えるMySQL Queryはありますか?

アイテムのリストを取得して、各アイテムがすべての異なるエンティティのすべてのプロパティを持っていること、タイプを定義する追加のプロパティ(「評価」など)、実際にはレーティング他のプロパティはnullです。私は私のPHPコードでこのようなdicationaryを使用するのが大好きだ:

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 

よう

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

何かがあなたはたぶん組合が選択

関連する問題