问个sql的查询语句!(愿意给所有分)

chaizhiyong 2008-11-25 09:50:11
请问大家一个关于sql语句的问题,怎样在查询语句中显示一个用户的相关信息,比如:用户1 字段1, 用户1 字段2, 用户1 字段1,用户1 字段2,只让他查询出来的结果显示为用户1 字段1,用户1 字段2。不显示相同的记录。谢谢!愿意把所有分给他!
...全文
276 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhshuai00 2008-11-27
  • 打赏
  • 举报
回复
我也是初学者,水平很菜。你看看我这个符合要求不?
假如表是table1

id jiang jiangli
1 一等奖 电话
2 二等奖 手机
3 三等奖 电视机
4 二等奖 手机
5 三等奖 电视机
6 四等奖 谢谢惠顾

sql语句
select min(id) as id,jiang+cast(count(id) as varchar(20))+'次' as jiang,jiangli as cishu from table1 group by jiang,jiangli order by id asc

结果

id jiang jiangli
1 一等奖1次 电话
2 二等奖2次 手机
3 三等奖2次 电视机
6 四等奖1次 谢谢惠顾
llkveryhappy 2008-11-26
  • 打赏
  • 举报
回复
ok
junying2yu 2008-11-26
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 chaizhiyong 的回复:]
好的,cdb_luck_draw这个是中奖名单表 表的结构是
id uid time draw
1 19223 1227229674 456
2 19223 1227229689 456
3 19223 1227229691 456
4 19142 1227229695 456
5 19223 1227229696 456
6 19179 1227229706 456
7 19201 1227229716 456
8 19201 1227229724 456
9 19223 1227229732 456
10 19223 1227229735 456

[/Quote]

SELECT DISTINCT UID,DRAW FROM CDB_LUCK_DRAW 得到的是一个UID 只中一次啊
junying2yu 2008-11-26
  • 打赏
  • 举报
回复
SELECT DISTINCT 用户1,字段1 FROM YOUR TABLE
derelictangel 2008-11-26
  • 打赏
  • 举报
回复
我好笨啊,都看不懂

PS:
我的目标是 ---->

^_^
nalnait 2008-11-26
  • 打赏
  • 举报
回复

DISTINCT


为什么不行?来点数据
jamo 2008-11-26
  • 打赏
  • 举报
回复
连问题都描述不清楚。
楼主建议你先整理一下自己的思路, 再把问题描述一次。

1. 测试数据 (格式如 insert into xxx )
2. 期望结果
chaizhiyong 2008-11-26
  • 打赏
  • 举报
回复
再次请高手解决!
chaizhiyong 2008-11-26
  • 打赏
  • 举报
回复
用DISTINCT不行啊!
chaizhiyong 2008-11-25
  • 打赏
  • 举报
回复
好像没有出来哦!
水族杰纶 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 chaizhiyong 的回复:]
好的,cdb_luck_draw这个是中奖名单表 表的结构是
id uid time draw
1 19223 1227229674 456
2 19223 1227229689 456
3 19223 1227229691 456
4 19142 1227229695 456
5 19223 1227229696 456
6 19179 1227229706 456
7 19201 1227229716 456
8 19201 1227229724 456
9 19223 1227229732 456
10 19223 1227229735 456

[/Quote]
--try
select a.*,b.username from (
select * from cdb_luck_draw t where not exists(select 1 from cdb_luck_draw where uid=t.uid and time>t.time ))a inner join cdb_members b on a.uid=b.uid
dawugui 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chaizhiyong 的回复:]
比如用户可以得一等奖,二等奖,三等奖。我这个程序用户可以得很多二等奖,很多三等奖和很多一等奖,比如得1等奖1次,二等奖4次,三等奖9次,我让他在显示页面只显示三个 就不是“王** 二等奖 彩色电视机”
王** 二等奖 彩色电视机
王** 三等奖 冰箱
王** 三等奖 冰箱
王** 三等奖 冰箱
我要让他显示的就是…
[/Quote]
select distinct * from tb ?
chaizhiyong 2008-11-25
  • 打赏
  • 举报
回复
SELECT a. * , b.username
FROM cdb_luck_draw a
LEFT JOIN cdb_members b ON b.uid = a.uid
WHERE a.draw != '456'
AND a.draw != '235'
AND a.draw != '126'
GROUP BY b.username
ORDER BY a.id DESC
LIMIT 0 , 30

这段语句得出来的不知道是不是结果,现在头晕了,呵呵
chaizhiyong 2008-11-25
  • 打赏
  • 举报
回复
好的,cdb_luck_draw这个是中奖名单表 表的结构是
id uid time draw
1 19223 1227229674 456
2 19223 1227229689 456
3 19223 1227229691 456
4 19142 1227229695 456
5 19223 1227229696 456
6 19179 1227229706 456
7 19201 1227229716 456
8 19201 1227229724 456
9 19223 1227229732 456
10 19223 1227229735 456
11 19201 1227229738 456
12 19223 1227229746 456
13 19223 1227229753 456
14 19223 1227229756 456
15 19142 1227229760 456
cdb_members 这个是用户表 现在应该只需要两个字段uid username

然后根据这两个表查询出来,让结果跟上面你用mssql写的语句查询结果一样!先谢谢这位大哥了,呵呵
水族杰纶 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 chaizhiyong 的回复:]
请楼上的高手把你写的语句和我写的那段结合起来又怎样写啊?请帮忙写一下,我可以把全部分给了!谢谢。
[/Quote]
你把你的涉及的表结构,及数据贴出来,还有这里的写法都是MSSQL的,不一定适合MYSQL的~~
chaizhiyong 2008-11-25
  • 打赏
  • 举报
回复
请楼上的高手把你写的语句和我写的那段结合起来又怎样写啊?请帮忙写一下,我可以把全部分给了!谢谢。
水族杰纶 2008-11-25
  • 打赏
  • 举报
回复
if object_id('tempdb..#')is not null drop table #
go
create table #(中奖者 varchar(20), 奖品 varchar(100), 时间 datetime)
insert # select '爽眼镜6' ,'许巍歌友会门票一张(同一手机号码重复获得只算一次)', '2008-11-25 22:10:31'
insert # select '爽眼镜6' ,'二维码优惠券一张(同一手机号码重复获得只算一次)' ,'2008-11-25 22:10:15'
insert # select '太阳移动7', '二维码优惠券一张(同一手机号码重复获得只算一次)', '2008-11-25 22:05:50'
insert # select '太阳移动7', '二维码优惠券一张(同一手机号码重复获得只算一次)', '2008-11-25 22:05:24'
insert # select 'littleangelszb', '二维码优惠券一张(同一手机号码重复获得只算一次)', '2008-11-25 22:04:41'
insert # select '爽眼镜4', '二维码优惠券一张(同一手机号码重复获得只算一次)' ,'2008-11-25 22:04:13'
select * from # t where not exists(select 1 from # where 中奖者=t.中奖者 and 奖品=t.奖品 and 时间>t.时间 )
/*-------------------- ---------------------------------------------------------------------------------------------------- ------------------------------------------------------
爽眼镜6 许巍歌友会门票一张(同一手机号码重复获得只算一次) 2008-11-25 22:10:31.000
爽眼镜6 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:10:15.000
太阳移动7 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:05:50.000
littleangelszb 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:04:41.000
爽眼镜4 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:04:13.000

(所影响的行数为 5 行)*/
chaizhiyong 2008-11-25
  • 打赏
  • 举报
回复
中奖列表
中奖者 奖品 时间
爽眼镜6 许巍歌友会门票一张(同一手机号码重复获得只算一次) 2008-11-25 22:10:31
爽眼镜6 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:10:15
太阳移动7 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:05:50
太阳移动7 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:05:24
littleangelszb 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:04:41
爽眼镜4 二维码优惠券一张(同一手机号码重复获得只算一次) 2008-11-25 22:04:13

这儿就不显示 ”太阳移动7“的两个二维码优惠券一张,直接就显示一张就可以了
chaizhiyong 2008-11-25
  • 打赏
  • 举报
回复
主要是现在头晕了,还有数据库用的是mysql!
chaizhiyong 2008-11-25
  • 打赏
  • 举报
回复
这是我现有的查询语句,查询出来的就是要显示那种
SELECT a. * , b.username
FROM cdb_luck_draw a
LEFT JOIN cdb_members b ON b.uid = a.uid
WHERE a.draw != '456'
AND a.draw != '235'
AND a.draw != '126'
ORDER BY a.id DESC
LIMIT 0 , 30


这是查询结果
id uid time draw username
15502 20704 1227622231 333 爽眼镜6
15496 20704 1227622215 345 爽眼镜6
15476 20695 1227621950 123 太阳移动7
15473 20695 1227621924 234 太阳移动7
15466 20699 1227621881 123 littleangelszb
15457 20701 1227621853 234 爽眼镜4
15456 20695 1227621846 345 太阳移动7
15454 20699 1227621843 234 littleangelszb
15434 20698 1227621599 123 xiaotiantian
15426 20669 1227621556 345 爽眼镜3
加载更多回复(11)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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