mysql读取并补充缺失的行数据... 本帖最后由 mbcls 于 2011-05-18 20:17:33 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html 1. 你的 create table xxx .. 语句 2. 你的 insert into xxx ... 语句 3. 结果是什么样,(并给以简单的算法描述) 4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。 create table table1( id int(10), col1 varchar(20),col2 varchar(20),col3 varchar(20) ) insert into table1 select 1,'user1','v1','value1' insert into table1 select 2,'user1','v2','value2' insert into table1 select 3,'user2','v1','value3' insert into table1 select 4,'user2','v2','value4' insert into table1 select 5,'user3','v1','value5' ....../*要得到这样的结果:col1 col2 col3-----------------------user1 v1 value1 user1 v2 value2 user2 v1 value3 user2 v2 value4 user3 v1 value5 user3 v2 null......*/drop table table1 mysql> select * from table1;+------+-------+------+--------+| id | col1 | col2 | col3 |+------+-------+------+--------+| 1 | user1 | v1 | value1 || 2 | user1 | v2 | value2 || 3 | user2 | v1 | value3 || 4 | user2 | v2 | value4 || 5 | user3 | v1 | value5 |+------+-------+------+--------+5 rows in set (0.03 sec)mysql> select a.col1,b.col2,c.col3 -> from ((select distinct col1 from table1) a , -> (select distinct col2 from table1) b -> ) left join table1 c on a.col1=c.col1 and b.col2=c.col2;+-------+------+--------+| col1 | col2 | col3 |+-------+------+--------+| user1 | v1 | value1 || user1 | v2 | value2 || user2 | v1 | value3 || user2 | v2 | value4 || user3 | v1 | value5 || user3 | v2 | NULL |+-------+------+--------+6 rows in set (0.03 sec)mysql> SELECT B.COL1,A.COL2,C.COL3 FROM ((SELECT DISTINCT col2 FROM table1) a ,(SELECT DISTINCT col1 FROM table1) B)LEFT JOIN TABLE1 C ON A.COL2=C.col2 AND B.COL1=C.col1; mysql怎么改成自动添加(AUTO INCREMENT) mysql 千万级数据的库该如何设计 哪位用过VS创建MySQL的强类型数据集?可发现过自动生成的方法参数错误的问题 Linux下装完mysql后默认密码是多少啊 高手帮忙看看, 求一句mysql的语句 难题,高分求解。windows下多台(3台)mysql主机实现同步复制,以及故障时自动迁移 继续这个数据库问题! 被 mysql 4.1.x 的字符集问题搞的快疯了,请求帮助! 关于mysql的left join问题,请教! Mysql索引的使用 mysql4.1乱码问题 求一个sql语句
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
(
id int(10),
col1 varchar(20),
col2 varchar(20),
col3 varchar(20)
) insert into table1 select 1,'user1','v1','value1'
insert into table1 select 2,'user1','v2','value2'
insert into table1 select 3,'user2','v1','value3'
insert into table1 select 4,'user2','v2','value4'
insert into table1 select 5,'user3','v1','value5'
....../*
要得到这样的结果:
col1 col2 col3
-----------------------
user1 v1 value1
user1 v2 value2
user2 v1 value3
user2 v2 value4
user3 v1 value5
user3 v2 null
......
*/
drop table table1
+------+-------+------+--------+
| id | col1 | col2 | col3 |
+------+-------+------+--------+
| 1 | user1 | v1 | value1 |
| 2 | user1 | v2 | value2 |
| 3 | user2 | v1 | value3 |
| 4 | user2 | v2 | value4 |
| 5 | user3 | v1 | value5 |
+------+-------+------+--------+
5 rows in set (0.03 sec)mysql> select a.col1,b.col2,c.col3
-> from ((select distinct col1 from table1) a ,
-> (select distinct col2 from table1) b
-> ) left join table1 c on a.col1=c.col1 and b.col2=c.col2;
+-------+------+--------+
| col1 | col2 | col3 |
+-------+------+--------+
| user1 | v1 | value1 |
| user1 | v2 | value2 |
| user2 | v1 | value3 |
| user2 | v2 | value4 |
| user3 | v1 | value5 |
| user3 | v2 | NULL |
+-------+------+--------+
6 rows in set (0.03 sec)mysql>
(SELECT DISTINCT col2 FROM table1) a
,
(SELECT DISTINCT col1 FROM table1) B)
LEFT JOIN TABLE1 C ON A.COL2=C.col2 AND B.COL1=C.col1;