2014-05-09 91 views
0

你好,這裏是我的表...MySQL搭配最新的更新中加入4個表

表網站

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

表keywords_s

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

表matchon

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 

這裏我想...

第一組由keywords_s.skeyword爲了通過rank.rank(這來,但)

二階由rank.slno遞減(不工作)

(我需要2次到工作,所以我可以得到最新的秩和日期,由skeyword和順序按職級組)

回答

1
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 
+0

THX兄弟.....它的工作;) – Harinder

+0

@Harinder:很高興爲您服務! – potashin

+1

我有...... ;-) – Harinder

0

這應該按您的要求

"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 "