找回密码
 注册
快捷导航
查看: 3022|回复: 39

【求助】求助高人一个SQL语句

[复制链接] |自动提醒
阅读字号:

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
发表于 2007-6-9 09:35:24| 字数 128| - 中国–河南–郑州 联通 | 显示全部楼层 |阅读模式
我想从lm_JobInfo表中和lm_GQInfo表中选出头8条记录,我这样子写提示列名 'Id' 不明确。我该怎么写呀,我试了UNION也不行,送10NB
select top 8 * from  [lm_JobInfo],[lm_GQInfo] order by Id desc

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 09:53:19| 字数 42| - 中国–香港 香港中文大学 | 显示全部楼层
看不太懂楼主说的...
是要写lm_JobInfo.Id或者lm_GQInfo.Id吧
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 09:56:03| 字数 7| - 中国–香港 香港中文大学 | 显示全部楼层
表结构贴上来吧
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

6822

回帖

0

积分

1

资产值

禁止发言

注册时间
2003-2-11
铜牌荣誉勋章(注册8年以上会员)
发表于 2007-6-9 10:04:38| 字数 150| - 中国–广西–钦州 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 10:09:03| 字数 146| - 中国–河南–郑州 联通 | 显示全部楼层
两个表中都有Id字段,我现在想用一个SQL语句选择出两个表中id按降序排列的8条信息(order by Id desc ),
select top 8 * from [lm_GQInfo] order by Id desc这样子写是查询【lm_GQInfo】中ID按降序排列的8条记录,但是如果是两个表的话,不知道怎么弄
回复 支持 反对

使用道具 举报

876

回帖

14

积分

2274

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-1-17
发表于 2007-6-9 10:11:58| 字数 132| - 中国–广东–广州 E家宽带 | 显示全部楼层
貌似你的两表连接没有条件, 不知道你这个是什么数据库,
我知道 MySQL 一般是这样:
select * from lm_JobInfo, lm_GQInfo on(lm_JobInfo.id = lm_GQInfo.id) order by lm_JobInfo.id desc limit 8;
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 10:22:05| 字数 29| - 中国–河南–郑州 联通 | 显示全部楼层
恩,是的SQL数据库,楼上的我试了,提示ON附近语法有问题
回复 支持 反对

使用道具 举报

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 10:31:58| 字数 17| - 中国–香港 香港中文大学 | 显示全部楼层
没连接条件哦 晕
楼主要学学基础知识啊
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

1万

回帖

189

积分

6万

资产值

至尊会员II Rank: 4Rank: 4Rank: 4Rank: 4

注册时间
2003-12-30
银牌荣誉勋章(注册10年以上会员)月全勤勋章
发表于 2007-6-9 10:32:13| 字数 12| - 中国–山东–威海 联通 | 显示全部楼层
把ON改为 where试试
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 10:33:11| 字数 107| - 中国–河南–郑州 联通 | 显示全部楼层
可能是我没说清楚,是这两个表,因为是想获得最后发表的记录,所以按ID降序选出8条,但是要是让两个表的ID相同的话,就不对了,那选出的是一个表的最后几条记录和另一个表的相同ID的那几条记录,所以说6楼的ID=ID不行
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 10:34:23| 字数 45| - 中国–河南–郑州 联通 | 显示全部楼层
QUOTE:
原帖由 tir 于 2007-6-9 10:31 发表
没连接条件哦 晕
楼主要学学基础知识啊

回复 支持 反对

使用道具 举报

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 10:34:43| 字数 27| - 中国–香港 香港中文大学 | 显示全部楼层
选出头8条记录
是从每个表里面选 还是从最终结果集里面选?
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

876

回帖

14

积分

2274

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-1-17
发表于 2007-6-9 10:39:52| 字数 132| - 中国–广东–广州 E家宽带 | 显示全部楼层

回复 #7 lyn00750 的帖子

微软的sql server?很久没摸了~

我上面给的适用于 MySQL ,与微软的不完全相同。
看这个行不行:

SELECT TOP 8 * FROM lm_JobInfo j JOIN lm_GQInfo q ON j.Id = q.Id ORDER BY j.Id DESC

表名列名大小写根据实际情况修改。
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 10:41:06| 字数 31| - 中国–河南–郑州 联通 | 显示全部楼层
每个表中选出4条,但是我要让它们显示在一起,但是ID不能相同呀
回复 支持 反对

使用道具 举报

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 10:43:25| 字数 44| - 中国–香港 香港中文大学 | 显示全部楼层
楼主的意思基本明白了
两个表的结构类似
要合并两个表的查询结果为一个结果集
应该是用union
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 10:45:42| 字数 85| - 中国–河南–郑州 联通 | 显示全部楼层
谢谢yiylu其实你那MYSQL的语句也可以,换成where就行了,这条也可以,但是ID=ID,那选出的是一个表的最后几条记录和另一个表的相同ID的那几条记录,所以不行了
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 10:47:20| 字数 103| - 中国–河南–郑州 联通 | 显示全部楼层
QUOTE:
原帖由 tir 于 2007-6-9 10:43 发表
楼主的意思基本明白了
两个表的结构类似
要合并两个表的查询结果为一个结果集
应该是用union

恩是的,就是要分别查询然后连接,但是我用UNION试了,老出错
回复 支持 反对

使用道具 举报

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 10:55:21| 字数 98| - 中国–香港 香港中文大学 | 显示全部楼层
select top 4 Id from lm_GQInfo group by Id desc
union
select top4 Id from lm_JobInfo group by Id desc
试试看吧 我水平也有限...**\
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

6822

回帖

0

积分

1

资产值

禁止发言

注册时间
2003-2-11
铜牌荣誉勋章(注册8年以上会员)
发表于 2007-6-9 11:09:25| 字数 257| - 中国–广西–钦州 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 11:14:10| 字数 11| - 中国–河南–郑州 联通 | 显示全部楼层
谢谢xcode我再看看
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 11:32:45| 字数 4| - 中国–河南–郑州 联通 | 显示全部楼层
做不出来
回复 支持 反对

使用道具 举报

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 11:41:39| 字数 283| - 中国–香港 香港中文大学 | 显示全部楼层
QUOTE:
原帖由 xcode 于 2007-6-9 11:09 发表


这样肯定是不行的,原因我上面的贴子里已经说过了,使用UNION语句前面不能有GROUP BY,会报错,只能在最后用GROUP BY,但这个GROUP BY是针对UNION后的集产生作用的。

建议楼主用临时表解决吧。

貌似是
子句不能用order by
全句不能用group by

楼主试试
select top 4 Id from lm_GQInfo group by Id
union all
select top 4 Id from lm_JobInfo group by Id
至于分句怎么按降序排列 再慢慢想吧

[ 本帖最后由 tir 于 2007-6-9 11:48 编辑 ]
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

6822

回帖

0

积分

1

资产值

禁止发言

注册时间
2003-2-11
铜牌荣誉勋章(注册8年以上会员)
发表于 2007-6-9 11:44:28| 字数 151| - 中国–广西–钦州 电信 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 11:45:53| 字数 8| - 中国–香港 香港中文大学 | 显示全部楼层
没难度 多不好玩啊
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

1125

回帖

0

积分

422

资产值

入门会员 Rank: 1

注册时间
2004-10-19
发表于 2007-6-9 11:56:44| 字数 115| - 中国–香港 香港中文大学 | 显示全部楼层
找了个装了MS Sql2005的机器试了一下 没问题了
select top 4 Id from lm_GQInfo group by Id
union all
select top 4 Id from lm_JobInfo group by Id
order by id desc
X61T 售后换了屏/B壳/指纹/风扇/键盘
T60p 售后换了屏
U1010应急用
R52 X41t已退役
回复 支持 反对

使用道具 举报

876

回帖

14

积分

2274

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-1-17
发表于 2007-6-9 11:57:14| 字数 94| - 中国–广东–广州 E家宽带 | 显示全部楼层
(select top 4 Id from lm_JobInfo)
union
(select top 4 Id from lm_GQInfo)
order by Id desc

这个应该可以了。谢谢小花,我自己也有收获~
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 11:58:14| 字数 51| - 中国–河南–郑州 联通 | 显示全部楼层
”能以 DISTINCT 方式选择 text、ntext 或 image 数据类型“。老是提示这个问题是怎么回事呀
回复 支持 反对

使用道具 举报

876

回帖

14

积分

2274

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-1-17
发表于 2007-6-9 11:59:59| 字数 52| - 中国–广东–广州 E家宽带 | 显示全部楼层

回复 #25 tir 的帖子

比我快了一步,呵呵。
不过group by 是分组计算,除非有count(Id)之类的运算才需要按某列分组的。
回复 支持 反对

使用道具 举报

2330

回帖

0

积分

3107

资产值

入门会员 Rank: 1

注册时间
2006-9-5
 楼主| 发表于 2007-6-9 12:02:08| 字数 83| - 中国–河南–郑州 联通 | 显示全部楼层
谢谢yiylu 和tir,果然实现了,id排序就是我想像中的, ,但是要是改成获取全部字段怎么改呀,一改错了

[ 本帖最后由 lyn00750 于 2007-6-9 12:03 编辑 ]
回复 支持 反对

使用道具 举报

876

回帖

14

积分

2274

资产值

黄金会员 Rank: 3Rank: 3Rank: 3

注册时间
2006-1-17
发表于 2007-6-9 12:07:22| 字数 37| - 中国–广东–广州 E家宽带 | 显示全部楼层

回复 #29 lyn00750 的帖子

我觉得应该表的列数要相同, 类型和顺序要一致, 最好把要查询的所有列都写一遍。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-1-31 14:58 , Processed in 0.187051 second(s), 59 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部