join的一对多,去除重复,排序优先的group方法
想将问题列表按照最新回答来排列。但问题和回答是分拆在两张表来存放的。
所以,要完成上述需求,需从主表“问题”取显示数据,但是得按照次表(回答)的更新日期来排序。 用join来做,始终无法去除重复,
折腾了两天,最后还是必须得用groupby(影响性能的东东)。
去除了重复,但是排序又不正确。
MySQL对语句的处理方式是: 先群组,群组后再排序,但是我现在想排序后再群组该如何解决呢?
$sql = "SELECT ask.* FROM ly_ask JOIN `answer` ON ask.id=answer.`aid` GROUP BY answer.aid ORDER BY max(answer.dateline) DESC LIMIT 15;"; SELECT ly_ask.* FROM ask, `answer` WHERE ask.id=answer.`aid` GROUP BY answer.aid ORDER BY max(answer.dateline) DESC LIMIT 15;
关于from多表 和 join 性能:
执行时的区别不大,但join能比较清楚告诉阅读者是哪些表进行了关联,以及关联的字段是什么。where就要读者自己去看了。
对于SQL解释器就差别不大了。
但是SQL规格推荐是用join的。
join的一对多,去除重复,排序优先的group方法的更多相关文章
- Java中List集合去除重复数据的四种方法
1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < lis ...
- 数组中去除重复的对象的简单方法and&&的使用
const arr = [ { name:'tom', age:15 }, { name:'rose', age:17 }, { name:'tom', age:11 }, { name:'rose' ...
- SQL Server数据库--》top关键字,order by排序,distinct去除重复记录,sql聚合函数,模糊查询,通配符,空值处理。。。。
top关键字:写在select后面 字段的前面 比如你要显示查询的前5条记录,如下所示: select top 5 * from Student 一般情况下,top是和order by连用的 orde ...
- linux命令(47):Linux下对文件进行按行排序,去除重复行
Linux下对文件进行按行排序:sort 与 uniq 命令简介 Linux | May 24, 2015 | linux sort 命令可针对文本文件的内容,以行为单位进行排序.其基本语法格式为: ...
- Python列表去除重复元素
主要尝试了3种列表去除重复元素 #2.去除列表中的重复元素 #set方法 def removeDuplicates_set(nums): l2 = list(set(l1)) #用l1的顺序排序l2 ...
- SQL变量、Substring、charindex、case函数、去除重复
isnull(aa,0)删除表数据: truncate table aaa 添加字段: ALTER TABLE table1 ADD col1 varchar(200) DEFAULT '2008 ...
- 关于iOS去除数组中重复数据的几种方法
关于iOS去除数组中重复数据的几种方法 在工作工程中我们不必要会遇到,在数组中有重复数据的时候,如何去除重复的数据呢? 第一种:利用NSDictionary的AllKeys(AllValues)方 ...
- 二维数组去除重复值和array_unique函数
今天遇到了一个问题,就是从数据库中去除的数组为一个二维数组,现在就是想将二位数组进行去重,但是在php中,对于一个一维数组,我们可以直接使用php的系统函数array_unique,但是这个函数不能对 ...
- sql联合查询去除重复计算总和
1.首先来个联合查询 SELECT 字段1, 字段2, 字段3, 字段4 FROM 表1 INNER JOIN 表2 ON 表1.字段x = 表2.字段x x:代表随意的一个,只要在联合查询的两张表都 ...
随机推荐
- jmap命令
一.jmap -heap PID using parallel threads in the new generation. ##新生代采用的是并行线程处理方式 using thread-local ...
- selendroid inspector xpth元素定位记录
android自动化测试元素定位,目前发现appium官方的uiautomatorviewer一般的元素定位还行,但好多都找不到. 这个时候,可以考虑selendroid的inspector 官网:h ...
- PHP自动执行程序
/****config.php***/ <?php return 1; //需要停止时改成0 ?> /******************/ ignore_user_abort();//关 ...
- 1.2、Mybatis二级缓存测试
package me.gacl.test; import me.gacl.domain.User; import me.gacl.util.MyBatisUtil; import org.apache ...
- 几个linux命令
常用linux命令: 普通用户命令: 一.文件和目录查看类命令 1. ls (常用参数 -l 和-h) 蓝颜色:表示目录 绿颜色:表示可执行文件 红颜色:表示压缩文件 白颜色:表示普通文件 青色:表示 ...
- LeetCode初体验—twoSum
今天注册了大名鼎鼎的LeetCode,做了一道最简单的算法题目: Given an array of integers, return indices of the two numbers such ...
- linux启动报错:kernel panic - not attempted to kill init
系统类型:CentOS 6.4(x64) 启动提示:Kernel panic - not syncing: Attempted to kill init 解决办法: 系统启动的时候,按下‘e’键进入g ...
- Java实战之04JavaWeb-04JSP、EL表达式、JSTL标签库
一.jsp部分 只要是与页面显示相关的都是重点 1.jsp的脚本 <%java代码%>:被翻译到service方法内部,局部变量,局部的功能 <%=表达式或变量%>:翻译成se ...
- lucene4.0 基于smb文件服务器的全文检索
使用lucene 4.0版本的全文检索 所需要的jar包 网速太慢,下次有空再把jar传上来 1.FileIndex 建立索引,查询,删除,更新 package com.strongit.tool ...
- 数独的C++解法
grid.h #ifndef _GRID_H_ #define _GRID_H_ #include <set> #include <cstddef> class Grid { ...