求一sql语句 现在有两张表:文章主表A(articleId,articleTitle),文章评论表B(commentId,articleId,commentTitle)现在我想实现这样的功能:列出文章列表,其中每篇文章标题下面列出此文章的前2个文章评论,请问sql语句怎么写啊?非常感谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select *from 文章主表A a left join 文章评论表B b on a.articleId=b.articleIdwhere 2>(select count(articleId) from 文章评论表B where articleId=b.articleId and commentId<b.commentId) (不要高估你的汉语表达能力或者我的汉语理解能力) 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式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 vote ( voteID int, title nvarchar(20) ) insert into vote select 1,'你最喜欢喝什么样子的啤酒' insert into vote select 2,'你最喜欢的歌手是谁?' -- 候选项表create table voteOption ( optionID int, voteID int, optionText nvarchar(50) ) insert into voteOption select 1,1,'青岛啤酒'insert into voteOption select 2,1,'燕京啤酒'insert into voteOption select 3,1,'雪花啤酒'insert into voteOption select 4,2,'吕方'insert into voteOption select 5,2,'张楚'insert into voteOption select 6,2,'张学友'-- 投票动作表create table vote_action ( actionid int, voteid int, optionid int) insert into vote_action select 1,1,1insert into vote_action select 2,1,3insert into vote_action select 1,2,4insert into vote_action select 2,2,5/* 一、页面上要得到这样的列表: 我的投票列表: 1.你最喜欢喝什么样子的啤酒 1.青岛啤酒 2.燕京啤酒 3.雪花啤酒 2.你最喜欢的歌手是谁? 1.吕方 2.张楚 3.张学友 3.... 1. .. 2. ..*/ /* 二、我的投票结果: 1.你最喜欢喝什么样子的啤酒 我投票了给了 "青岛啤酒","雪花啤酒" 2.你最喜欢的歌手是谁? 我投票了给了 "吕方","张楚" 3.... 1. .. 2. ..*/ drop table votedrop table voteOptiondrop table vote_action其中我刚才问得是第一个例子,第二个例子貌似只用sql语句不能实现吧?如果分不够我再加吧,非常感谢!!新年快乐~~~ 上面插如动作表写错了,修改为如下:-- 投票动作表 create table vote_action ( actionid int, voteid int, optionid int ) insert into vote_action select 1,1,1 insert into vote_action select 2,1,3 insert into vote_action select 3,2,4 insert into vote_action select 4,2,5 1> select * from vote2> select * from voteOption3> select * from vote_action4> govoteID |title-----------|-------------------- 1|你最喜欢喝什么样子的啤酒 2|你最喜欢的歌手是谁?(2 rows affected)optionID |voteID |optionText-----------|-----------|--------------------- 1| 1|青岛啤酒 2| 1|燕京啤酒 3| 1|雪花啤酒 4| 2|吕方 5| 2|张楚 6| 2|张学友(6 rows affected)actionid |voteid |optionid-----------|-----------|----------- 1| 1| 1 2| 1| 3 3| 2| 4 4| 2| 5(4 rows affected)1>确认以上你的数据没有问题 select a.voteID,a.title,b.optionID,b.optionTextfrom vote a inner join voteOption b on a.voteID=b.voteID1> select a.voteID,a.title,b.optionID,b.optionText2> from vote a inner join voteOption b on a.voteID=b.voteID3> govoteID |title |optionID |optionText-----------|--------------------|-----------|---------------------------------------- 1|你最喜欢喝什么样子的啤酒 | 1|青岛啤酒 1|你最喜欢喝什么样子的啤酒 | 2|燕京啤酒 1|你最喜欢喝什么样子的啤酒 | 3|雪花啤酒 2|你最喜欢的歌手是谁? | 4|吕方 2|你最喜欢的歌手是谁? | 5|张楚 2|你最喜欢的歌手是谁? | 6|张学友(6 rows affected)1> 先谢谢楼上,如果你这么写,在以主表Vote分页时就没法判断了啊,譬如我现在每页要显示5个投票,然后还是列表方式展示: 1.你最喜欢喝什么样子的啤酒 1.青岛啤酒 2.燕京啤酒 3.雪花啤酒 2.你最喜欢的歌手是谁? 1.吕方 2.张楚 3.张学友 3.... 1. .. 2. .. ... 求助!!!SQL如何根据一个表中字典项查询另一个表中的字段,并修改相应的数据 这条语句该怎么来处理呢? update语句的疑问 a数据源的a1表数据插入b数据源b1表,如何实现 SqlServer2000安装的问题! 企业管理器打不开,提示以下错误 求 SQL 语句 请教SQLSERVER2000存储图像记录的速度 TXT文件数据导入,请大侠帮助!在线等 SQL Server 2008 R2存储过程中怎么输出调试日志信息? 大数据量实时计算问题 我的全文检索新添加的数据查询不出来
from 文章主表A a left join 文章评论表B b on a.articleId=b.articleId
where 2>(select count(articleId) from 文章评论表B where articleId=b.articleId and commentId<b.commentId)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式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 vote
(
voteID int,
title nvarchar(20)
) insert into vote select 1,'你最喜欢喝什么样子的啤酒'
insert into vote select 2,'你最喜欢的歌手是谁?' -- 候选项表
create table voteOption
(
optionID int,
voteID int,
optionText nvarchar(50)
)
insert into voteOption select 1,1,'青岛啤酒'
insert into voteOption select 2,1,'燕京啤酒'
insert into voteOption select 3,1,'雪花啤酒'insert into voteOption select 4,2,'吕方'
insert into voteOption select 5,2,'张楚'
insert into voteOption select 6,2,'张学友'
-- 投票动作表
create table vote_action
(
actionid int,
voteid int,
optionid int
)
insert into vote_action select 1,1,1
insert into vote_action select 2,1,3insert into vote_action select 1,2,4
insert into vote_action select 2,2,5/*
一、页面上要得到这样的列表: 我的投票列表:
1.你最喜欢喝什么样子的啤酒
1.青岛啤酒
2.燕京啤酒
3.雪花啤酒
2.你最喜欢的歌手是谁?
1.吕方
2.张楚
3.张学友
3....
1. ..
2. ..
*/
/*
二、我的投票结果: 1.你最喜欢喝什么样子的啤酒
我投票了给了 "青岛啤酒","雪花啤酒"
2.你最喜欢的歌手是谁?
我投票了给了 "吕方","张楚"
3....
1. ..
2. ..
*/ drop table vote
drop table voteOption
drop table vote_action其中我刚才问得是第一个例子,第二个例子貌似只用sql语句不能实现吧?如果分不够我再加吧,
非常感谢!!新年快乐~~~
create table vote_action
(
actionid int,
voteid int,
optionid int
)
insert into vote_action select 1,1,1
insert into vote_action select 2,1,3 insert into vote_action select 3,2,4
insert into vote_action select 4,2,5
2> select * from voteOption
3> select * from vote_action
4> go
voteID |title
-----------|--------------------
1|你最喜欢喝什么样子的啤酒
2|你最喜欢的歌手是谁?(2 rows affected)
optionID |voteID |optionText
-----------|-----------|---------------------
1| 1|青岛啤酒
2| 1|燕京啤酒
3| 1|雪花啤酒
4| 2|吕方
5| 2|张楚
6| 2|张学友(6 rows affected)
actionid |voteid |optionid
-----------|-----------|-----------
1| 1| 1
2| 1| 3
3| 2| 4
4| 2| 5(4 rows affected)
1>确认以上你的数据没有问题
from vote a inner join voteOption b on a.voteID=b.voteID1> select a.voteID,a.title,b.optionID,b.optionText
2> from vote a inner join voteOption b on a.voteID=b.voteID
3> go
voteID |title |optionID |optionText
-----------|--------------------|-----------|----------------------------------------
1|你最喜欢喝什么样子的啤酒 | 1|青岛啤酒
1|你最喜欢喝什么样子的啤酒 | 2|燕京啤酒
1|你最喜欢喝什么样子的啤酒 | 3|雪花啤酒
2|你最喜欢的歌手是谁? | 4|吕方
2|你最喜欢的歌手是谁? | 5|张楚
2|你最喜欢的歌手是谁? | 6|张学友(6 rows affected)
1>
1.你最喜欢喝什么样子的啤酒
1.青岛啤酒
2.燕京啤酒
3.雪花啤酒
2.你最喜欢的歌手是谁?
1.吕方
2.张楚
3.张学友
3....
1. ..
2. ..
...