簡體   English   中英

MySQL加入4個表的最新更新

[英]Mysql join with latest update in 4 tables

嗨,這是我的桌子。

表網站

     sid  sname       uid
    ----  ----------  ----
       1  aaa.com      1
       5  bbb.com      1 

表格keyword_s

     kid  skeywoird       
    ----  ----------  
       1  word1    
       2  word2

桌上火柴

mid    uid    sid     kid       
----  ------  -----  -----
   1    1        1     1      
   2    1        1     2    

表等級

 mid   rank    dateon           url       
----  ------   -------         -----
   2     7    08-May-2014      bbb.com/a
   2     6    09-May-2014      bbb.com/2  

而我的查詢

"SELECT 
    keywords_s.skeyword,
    keywords_s.kid,
    sites.sname,
    rank.rank,
    rank.url,
    rank.dateon
    FROM matchon
    Inner JOIN sites ON sites.sid = matchon.sid
    Inner JOIN keywords_s ON keywords_s.kid = matchon.kid
    Inner JOIN rank ON rank.mid = matchon.mid
    where matchon.uid = :uid and sites.sname = :sname and sites.deactive != '1'
    group by keywords_s.skeyword order by rank.rank
    "

我正在輸出

rank   keyword    dateon        url       
----  ---------   -------      -----
   7   word2    08-May-2014    bbb.com/a

所需的輸出是

rank   keyword    dateon        url       
----  ---------   -------      -----
   6   word2    09-May-2014    bbb.com/2

在這里我想得到...

第1組,由keyword_s.s.rank.rank排序(此關鍵字即將發布,但是)

按rank.slno desc排序二階(無效)

(我需要二階才能工作,所以我可以獲得最新的排名和日期,按關鍵詞分組和按等級排序)

SELECT keywords_s.skeywor
     , keywords_s.kid
     , sites.sname
     , rank.rank
     , rank.url
     , rank.dateon
FROM matchon JOIN sites ON sites.sid = matchon.sid
             JOIN keywords_s ON keywords_s.kid = matchon.kid
             JOIN rank ON rank.mid = matchon.mid AND
                          rank.dateon = (SELECT MAX(dateon) FROM rank WHERE mid =  matchon.mid)
WHERE matchon.uid = :uid and sites.sname = :sname and sites.deactive != '1'
GROUP BY keywords_s.skeyword order by rank.rank

這應該按照您的要求工作

"Select * from(SELECT keywords_s.skeyword, keywords_s.kid, sites.sname, rank.rank, rank.url, rank.dateon FROM matchon Inner JOIN sites ON sites.sid = matchon.sid Inner JOIN keywords_s ON keywords_s.kid = matchon.kid Inner JOIN rank ON rank.mid = matchon.mid where matchon.uid = :uid and sites.sname = :sname and sites.deactive != '1' order by rank.rank desc)xyz group by xyz.skeyword "

暫無
暫無

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

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