首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何进行sql查询?

如何进行sql查询?
EN

Stack Overflow用户
提问于 2013-12-19 13:39:37
回答 3查看 85关注 0票数 0

以下是表的结构,喜欢

代码语言:javascript
复制
id(int 11)
idn(varchar 10)
type (enum ('up','down'))

以下是表News的结构

代码语言:javascript
复制
id(int 11)
idn(varchar 10)
header (varchar 100)
date(datetime)

要显示新闻,我使用sql查询:

代码语言:javascript
复制
SELECT header FROM News n left join Likes l on l.idn=n.idn ORDER by n.date

但是,现在我想从表新闻中选择标题新闻,并按desc排序,用type = up来计数表中喜欢的行。

我该怎么做?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-19 13:42:50

这里有一个查询,用于获取每天最喜欢的标题。如果所有日期都需要顶部,请从n.date中删除ORDER BY

代码语言:javascript
复制
SELECT header FROM News as n 
LEFT JOIN
(
  Select idn,Count(*) as UpLikes FROM Likes  WHERE type='up' GROUP BY idn
) as l 
   ON l.idn=n.idn 
ORDER BY n.date,l.UpLikes DESC
票数 1
EN

Stack Overflow用户

发布于 2013-12-19 13:45:16

代码语言:javascript
复制
SELECT n.header, COUNT(i.`id`) as like_count 
FROM Likes l LEFT JOIN News n ON n.idn = l.idn 
WHERE  l.`type` = 'up' 
ORDER BY like_count DESC
票数 0
EN

Stack Overflow用户

发布于 2013-12-19 13:53:56

你为什么不用这个:

代码语言:javascript
复制
    SELECT id, idn, header, LikeCount
    FROM 
    (
       SELECT id, idn, header, (SELECT COUNT(1) FROM [Likes]) AS [LikeCount] 
       FROM [News]    
    )
   ORDER By [LikeCount]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20683253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档