簡體   English   中英

MySQL合並來自多個表的查詢結果

[英]MySQL Combine Query Results From Multiple Tables

假設我有兩個表:shares和follow。 當前,我有一個查詢,該查詢返回按日期排序的最新股票,限於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,名稱等? 這有可能嗎?

認為您正在尋找工會...

    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;

您可能需要根據需要調整別名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM