求一条SQL查询语句!

bnc9595 2009-07-22 06:12:01
涉及到3个表了,小弟晕了。

其中一个表是专题表【special】,用于放置专题名称及路径
表2是专题与新闻的关系【special_news】,是对应关系,一个专题(specialID)下,包含有N多新闻(newsID)
表3是新闻列表,新闻内容,标题,栏目等等

我已经将专题读取了出来
string Sql = " Select [SpecialID],[SpecialCName],[SavePath],[saveDirPath],[FileName],[FileEXName],[isDelPoint] From [" + DBConfig.TableNamePrefix + "news_special] Where [ParentID]='" + this.Param_CurrentSpecialID + "'";
DataTable dt = CommonData.DalPublish.ExecuteSql(Sql);
if (dt == null || dt.Rows.Count == 0) return "";

现在我想做个循环
for (int i = 0; i < dt.Rows.Count; i++)
{

把每个专题下的新闻都显示出来
循环里的SQL应该如何来写啊?谢谢各位了!
...全文
88 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
善缘2022 2009-07-23
  • 打赏
  • 举报
回复
学习下。帮顶
Gihrye 2009-07-23
  • 打赏
  • 举报
回复
select t1.name,t3.name form table1 t1 inner join table2 t2 on t1.t1id=t2.id inner join table3 t3 on t2.t3id=t3.id where t1.id=123

一个样板,你可以照着这个样板写
table1和table3事多对多关系,table2是关联表
bnc9595 2009-07-22
  • 打赏
  • 举报
回复
string s_newsSql = "select top " + Param_Loop + " " + SqlFields + " from" +
" " + SqlCondition + " inner join [" + DBConfig.TableNamePrefix + "Special_news] on [" + DBConfig.TableNamePrefix + "news].NewsID=[" + DBConfig.TableNamePrefix + "Special_news].SpecialID where [SpecialID]='" + dt.Rows[i]["SpecialID"].ToString() + "' + SqlOrderBy";


这样写不知道对不对?求高手帮忙看一下!
bnc9595 2009-07-22
  • 打赏
  • 举报
回复
拜托大家写成普通的sql语句
abeniaj0427 2009-07-22
  • 打赏
  • 举报
回复

Select * from special_news where specialID='"+dt.Rows[i].Item["SpecialID"].toString()+"'
hypnoz 2009-07-22
  • 打赏
  • 举报
回复
declare @specialID int
set @specialID = 1

select * from news a
inner join special_news b
on a.newsid = b.newsid
where specialID = @specialID
farwy 2009-07-22
  • 打赏
  • 举报
回复
数据层调用这样写比较好。

public int Insert( int userID,DateTime loginTime,DateTime logoutTime ) {
//构造SQL语句
string sql = "INSERT INTO [Loginfo](UserID,LoginTime,LogoutTime)VALUES(@UserID,@LoginTime,@LogoutTime); SELECT @@Identity";

//构造参数
SqlParameter[] parameters = {
new SqlParameter("@FinaId",SqlDbType.DateTime),
new SqlParameter("@UserId",SqlDbType.DateTime),
new SqlParameter("@FinaType",SqlDbType.DateTime),
};

//为参数赋值
int i = 0;
parameters[ i++ ].Value = userID;
parameters[ i++ ].Value = loginTime;
parameters[ i++ ].Value = logoutTime;

//执行SQL语句
try {
object obj = db.ExecuteScalar( CommandType.Text, sql, parameters ) ?? "-1";
int Identity;
if( int.TryParse( obj.ToString(), out Identity ) )
return Identity;
return -1;
} catch( Exception exp ) {
throw exp;
}
}
farwy 2009-07-22
  • 打赏
  • 举报
回复

declare @specialID int
set @specialID = 1

select * from news a
inner join special_news b
on a.newsid = b.newsid
where specialID = @specialID
周公 2009-07-22
  • 打赏
  • 举报
回复
用连接查询就可以了。
cq139514 2009-07-22
  • 打赏
  • 举报
回复
Select * from special_news where specialID='"+dt.Rows[i].Item["SpecialID"].tostring+"'

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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