mysql语句排序求救。
CREATE TABLE `a` (
`aid` int(11) NOT NULL,
`astate` int(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `a` (`aid`, `astate`) VALUES
(1, 1),
(2, 1),
(3, 1);
B表:
CREATE TABLE `b` (
`bid` int(11) NOT NULL,
`bfield` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `b` (`bid`, `bfield`) VALUES
(1, 'f1 '),
(2, 'f2 '),
(3, 'f3 '),
(4, 'f4 ');
C表:
CREATE TABLE `c` (
`cid` int(11) NOT NULL,
`aid` int(11) NOT NULL,
`bid` int(11) NOT NULL,
`cvalue` varchar(255) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `c` (`cid`, `aid`, `bid`, `cvalue`) VALUES
(1, 1, 1, 'v11 '),
(2, 1, 2, 'v12 '),
(3, 1, 3, 'v13 '),
(4, 2, 1, 'v31 '),
(5, 2, 2, 'v22 '),
(6, 3, 1, 'v21 ');
我现在的mysql语句:
SELECT a.aid, b.bid,b.bfield,c.cvalue
FROM (a, b )
LEFT JOIN c
ON (a.aid = c.aid AND b.bid = c.bid)
ORDER BY a.aid ASC, b.bid ASC
得到的结果是:
aid bid bfield cvalue
1 1 "f1" "v11"
1 2 "f2" "v12"
1 3 "f3" "v13"
1 4 "f4" NULL
2 1 "f1" "v31"
2 2 "f2" "v22"
2 3 "f3" NULL
2 4 "f4" NULL
3 1 "f1" "v21"
3 2 "f2" NULL
3 3 "f3" NULL
3 4 "f4" NULL
然后希望得出来的数据结构是:
aid bid bfield cvalue
1 1 "f1" "v11"
1 2 "f2" "v12"
1 3 "f3" "v13"
1 4 "f4" NULL
3 1 "f1" "v21"
3 2 "f2" NULL
3 3 "f3" NULL
3 4 "f4" NULL
2 1 "f1" "v31"
2 2 "f2" "v22"
2 3 "f3" NULL
2 4 "f4" NULL
注意红色部分。 主要是想根据不同aid的bfield的相同项目(比如f1)排序,然后保持相同的aid在一起并且cvalue的值能按序排列
哪位仁兄帮帮忙!
相关推荐
MySQL中select语句使用order按行排序
本文介绍MySQL数据库中执行select查询语句,并对查询的结果使用order by 子句进行排序。 再来回顾一下SQL语句中的select语句的语法: Select 语句的基本语法: Select <列的集合> from <表名> where <条件> order by <排序字段和方式> 如果要对查询结果按某个字段排序,则要使用order by 子句,如下: select * from <表名> order by <字段名称> <排序方式> 下面来看两个例子,第一个查询test表中所有数据,并按t_id正序排列;第二个查询与第一个相反,是逆序排列。 mysql> select t_id,
mysql自定义排序顺序语句
mysql 自定义排序顺序 实例如:在sql语句中加入ORDER BY FIELD(status,3,4,0,2,1)语句可定义排序顺序 说明:status为排序字段,后面为该字段的相关值 您可能感兴趣的文章:SQL 按特定字段值排序SQL字符型字段按数字型字段排序实现方法MySQL中按照多字段排序及问题解决MySQL 按指定字段自定义列表排序的实现
MySQL对中文进行排序详解及实例
MySQL对中文进行排序详解 MySQL默认只支持对日期、时间和英文字符串进行排序,如果对中文进行order by很可能得不到想要的结果,如下面的查询并不会按我们所想的根据汉字的拼音进行排序: SELECT * from user order by user_name; 如果相对中文进行排序的话,可以使用CONVERT(coloum_name USING GBK)将中文转为GBK编码形式,然后再排序,就可以实现根据汉子的拼音进行排序: SELECT * from user order by CONVERT(user_name USING GBK); 感谢阅读,希望能帮助到大家,谢谢大家对本
MySQL利用索引优化ORDER BY排序语句的方法
创建表&创建索引 create table tbl1 ( id int unique, sname varchar(50), index tbl1_index_sname(sname desc) ); 在已有的表创建索引语法 create [unique|fulltext|spatial] index 索引名 on 表名(字段名 [长度] [asc|desc]); MySQL也能利用索引来快速地执行ORDER BY和GROUP BY语句的排序和分组操作。 通过索引优化来实现MySQL的ORDER BY语句优化: 1、ORDER BY的索引优化 如果一个SQL语句形如: SELECT
Mysql利用group by分组排序
主要为大家详细介绍了Mysql利用group by分组排序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


