mysql - 查詢資料庫某個欄位不重複的值,依時間排序,如何寫呢?
代言
代言 2017-06-20 10:05:37
0
1
1008

文章模型如下

class Article(models.Model):

title = models.CharField(max_length=150, verbose_name='文章标题', unique=True)
content = models.TextField(verbose_name='文章内容')
describe = models.CharField(max_length=500, verbose_name='文章描述', blank=True, null=True)
date_publish = models.DateTimeField(auto_now_add=True, verbose_name="发布时间")
click_count = models.PositiveIntegerField(verbose_name='点击次数', blank=True, null=True, default=0)
keywords = models.ForeignKey(Keywords, blank=True, null=True, verbose_name='关键词')  

class Meta:
    verbose_name = '文章'
    verbose_name_plural = verbose_name
    ordering = ['-date_publish']

def __str__(self):
    return self.title

查詢:若外鍵字段「keywords」下有多條數據,只取1條,多條數據按click_count取點擊數最大的,再得到標題/內容/描述的值,輸出到網頁模板上。

想用一個查詢語法完成,請問如何寫呢

代言
代言

全部回覆(1)
代言

關鍵字mysql分析函數(開窗函數),由於mysql不支援max over只能寫成如下:

SELECT tt.*
FROM table tt
  INNER JOIN (SELECT
                keyword,
                max(click_count) maxcount
              FROM table
              GROUP BY keyword) groupedtt ON tt.keyword = groupedtt.keyword AND tt.click_count = groupedtt.maxcount
ORDER BY tt.create_time
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板