【求助】求助高人一个SQL语句
我想从lm_JobInfo表中和lm_GQInfo表中选出头8条记录,我这样子写提示列名 'Id' 不明确。我该怎么写呀,我试了UNION也不行,送10NBselect top 8 * from, order by Id desc 看不太懂楼主说的...
是要写lm_JobInfo.Id或者lm_GQInfo.Id吧 表结构贴上来吧 两个表中都有Id字段,我现在想用一个SQL语句选择出两个表中id按降序排列的8条信息(order by Id desc ),
select top 8 * from order by Id desc这样子写是查询【lm_GQInfo】中ID按降序排列的8条记录,但是如果是两个表的话,不知道怎么弄 貌似你的两表连接没有条件, 不知道你这个是什么数据库,
我知道 MySQL 一般是这样:
select * from lm_JobInfo, lm_GQInfo on(lm_JobInfo.id = lm_GQInfo.id) order by lm_JobInfo.id desc limit 8; 恩,是的SQL数据库,楼上的我试了,提示ON附近语法有问题 没连接条件哦 晕
楼主要学学基础知识啊 把ON改为 where试试 可能是我没说清楚,是这两个表,因为是想获得最后发表的记录,所以按ID降序选出8条,但是要是让两个表的ID相同的话,就不对了,那选出的是一个表的最后几条记录和另一个表的相同ID的那几条记录,所以说6楼的ID=ID不行:') 原帖由 tir 于 2007-6-9 10:31 发表 http://www.ibmnb.com/images/common/back.gif
没连接条件哦 晕
楼主要学学基础知识啊
:') :') 选出头8条记录
是从每个表里面选 还是从最终结果集里面选?
回复 #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
表名列名大小写根据实际情况修改。 每个表中选出4条,但是我要让它们显示在一起,但是ID不能相同呀 楼主的意思基本明白了
两个表的结构类似
要合并两个表的查询结果为一个结果集
应该是用union 谢谢yiylu其实你那MYSQL的语句也可以,换成where就行了,这条也可以,但是ID=ID,那选出的是一个表的最后几条记录和另一个表的相同ID的那几条记录,所以不行了 原帖由 tir 于 2007-6-9 10:43 发表 http://www.ibmnb.com/images/common/back.gif
楼主的意思基本明白了
两个表的结构类似
要合并两个表的查询结果为一个结果集
应该是用union
恩是的,就是要分别查询然后连接,但是我用UNION试了,老出错 select top 4 Id from lm_GQInfo group by Id desc
union
select top4 Id from lm_JobInfo group by Id desc
试试看吧 我水平也有限...**\ 谢谢xcode我再看看 :') :') :') 做不出来 原帖由 xcode 于 2007-6-9 11:09 发表 http://www.ibmnb.com/images/common/back.gif
这样肯定是不行的,原因我上面的贴子里已经说过了,使用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 编辑 ] 没难度 多不好玩啊^v^ 找了个装了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 (select top 4 Id from lm_JobInfo)
union
(select top 4 Id from lm_GQInfo)
order by Id desc
这个应该可以了。谢谢小花,我自己也有收获~ ”能以 DISTINCT 方式选择 text、ntext 或 image 数据类型“。老是提示这个问题是怎么回事呀
回复 #25 tir 的帖子
比我快了一步,呵呵。不过group by 是分组计算,除非有count(Id)之类的运算才需要按某列分组的。 谢谢yiylu 和tir,果然实现了,id排序就是我想像中的,:D :D ,但是要是改成获取全部字段怎么改呀,一改错了
[ 本帖最后由 lyn00750 于 2007-6-9 12:03 编辑 ]
回复 #29 lyn00750 的帖子
我觉得应该表的列数要相同, 类型和顺序要一致, 最好把要查询的所有列都写一遍。
页:
[1]
2