菜鸟求助

legendnan 2013-12-26 08:51:10
有下面2个表 。我想根据skpaper的toyear字段排序。
我写的sql语句如下。求大神指点那里出错了?我又该如何写这个sql呢?
 SELECT pp.toyear, pp.grouptypeid, pp.subjectid, se. *
FROM djs_skpaper AS pp, djs_skexam AS se
WHERE se.grouptypeid =1
AND se.subjectid =1
AND se.grouptypeid = pp.grouptypeid
ORDER BY pp.toyear DESC
LIMIT 0 , 30


这是我的sql查询出来的结果
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
知道就是你 2013-12-26
  • 打赏
  • 举报
回复
能否手动展示一下,原始数据和查询结果(要求),如果是两种表内连接是可以实现的 。麻烦标记一下 ,不然不知道你的要求,谢谢
legendnan 2013-12-26
  • 打赏
  • 举报
回复
引用 2 楼 JenMinZhang 的回复:

SELECT pp.toyear, pp.grouptypeid, pp.subjectid, se. *
FROM djs_skpaper AS pp INNER JOIN djs_skexam AS se ON se.grouptypeid = pp.grouptypeid
WHERE se.grouptypeid =1
AND se.subjectid =1
ORDER BY pp.toyear DESC
LIMIT 0 , 30

建议好好看一下MYSQL连接查询部分 !

兄弟咱俩写的一个意思。。结果是一样的。
不知道你发现没发现一个问题?如图


他只有2个科目。但是却每年都显示了一次。是这样吧?
这是不是设计表的时候出问题了?还是说我的方法压根就不对头?
知道就是你 2013-12-26
  • 打赏
  • 举报
回复

 SELECT pp.toyear, pp.grouptypeid, pp.subjectid, se. *
FROM djs_skpaper AS pp  INNER JOIN  djs_skexam AS se  ON  se.grouptypeid = pp.grouptypeid
WHERE se.grouptypeid =1
AND se.subjectid =1
ORDER BY pp.toyear DESC
LIMIT 0 , 30 
建议好好看一下MYSQL连接查询部分 !
legendnan 2013-12-26
  • 打赏
  • 举报
回复
大腿们 。人呢
xuzuning 2013-12-26
  • 打赏
  • 举报
回复
你的连接条件是 se.grouptypeid = pp.grouptypeid 而 se.grouptypeid 和 pp.grouptypeid 均不唯一 自然就多出许多记录了 你还需要有 se.toyear=pp.toyear
Rotel-刘志东 2013-12-26
  • 打赏
  • 举报
回复
SELECT pp.toyear, pp.grouptypeid, pp.subjectid, se. * FROM djs_skpaper AS pp, djs_skexam AS se WHERE se.grouptypeid = pp.grouptypeid and se.grouptypeid =1 AND se.subjectid =1 ORDER BY pp.toyear DESC LIMIT 0 , 30 ;

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧