2

share と follow の 2 つのテーブルがあるとします。現在、日付順に並べ替えられた最新の株式を返すクエリがあり、結果は 25 件に制限されています。私がやりたいのは、フォローと共有の両方からクエリを実行して、最新の 25 件の結果を返すことです。ただし、これを行う方法についてはわかりません。

共有に対する私のクエリは次のようになります。

select s.id, s.name, s.sharer, s.type from shares s where id = :id order by s.date desc limit 0,25

フォロワーに対する私のクエリは次のようになります。

select f.follower, f.following, f.type from followers f where f.following = :id order by f.date desc limit 0,25

フォロワーテーブルから選択した場合、フォロワー、フォロー、タイプのみを取得し、共有テーブルから選択した場合、ID、名前などのみを取得するように、これらを組み合わせるにはどうすればよいですか? これは可能ですか?

4

1 に答える 1

3

あなたは労働組合を探していると思います...

    select id, name, sharer, type from (        
    (select s.id as id, 
            s.name as name, 
            s.sharer as sharer, 
            s.type as type, 
            s.date as date 
       from shares s 
       where id = :id order by s.date desc)
        UNION
    (select f.follower as id, 
            f.following as name, 
            f.following as sharer,
            f.type as type,
            f.date as date
        from followers f 
        where f.following = :id order by f.date desc)) 
        order by date desc limit 0,25;

必要に応じてエイリアスを調整する必要がある場合があります。

于 2013-08-24T02:14:44.960 に答える