数据库中多表连接问题.急....

huangkaigoodup 2009-12-19 03:53:15
我在数据库中创建两张表tb_duty ,tb_department
我是用ODBC连接的数据库,我想把两张表连接起来查询,但总是报”由于结果集是由一个联接条件产生的,无法完成定位请求“的错误。为什么啊?
sql语句如下
strsql="select depshow,ID,dutyname,tb_duty.depname from tb_duty,tb_depart where tb_depart.depname=tb_duty.depname where tb_depart.depname='人事部'";

CRecordset的派生类中部分代码入下:
CString CTestwithdbset::GetDefaultSQL()
{
return _T("[dbo].[tb_depart],[dbo].[tb_duty]");
}

...全文
72 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangkaigoodup 2009-12-22
  • 打赏
  • 举报
回复
谢了啊,我试试...
尘雨 2009-12-22
  • 打赏
  • 举报
回复
strsql="select * from (select depshow,ID,dutyname,tb_duty.depname as duty_depname, tb_depart.depname as depart_name from tb_duty,tb_depart where tb_depart.depname=tb_duty.depname and tb_depart.depname='人事部') a ";

对于可能重复的列明,可以用 as 别名的方式避免重复
huangkaigoodup 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 chenlycly 的回复:]
可以现在查询分析器中运行一下SQL语句,看SQL语句是否正确。
[/Quote]
有好几次我在查询分析器上运行正确的语句,放在程序中都会出错的,
huangkaigoodup 2009-12-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vieri_ch 的回复:]
strsql="select * from (select depshow,ID,dutyname,tb_duty.depname from tb_duty,tb_depart where tb_depart.depname=tb_duty.depname and tb_depart.depname='人事部') a ";
试试这个
[/Quote]
你这个我试了下,当我在第二个select后面在加上tb_depart.depname字段的时候,他会有“多次为a指定了列depname,未能准备语句”的错误提示,该怎么办啊
dvlinker 2009-12-19
  • 打赏
  • 举报
回复
应该用join ...on...连接查询子句。
dvlinker 2009-12-19
  • 打赏
  • 举报
回复
可以现在查询分析器中运行一下SQL语句,看SQL语句是否正确。
wildwise 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 vieri_ch 的回复:]
strsql="select * from (select depshow,ID,dutyname,tb_duty.depname from tb_duty,tb_depart where tb_depart.depname=tb_duty.depname and tb_depart.depname='人事部') a ";
试试这个
[/Quote]
up
尘雨 2009-12-19
  • 打赏
  • 举报
回复
strsql="select * from (select depshow,ID,dutyname,tb_duty.depname from tb_duty,tb_depart where tb_depart.depname=tb_duty.depname and tb_depart.depname='人事部') a ";
试试这个
huangkaigoodup 2009-12-19
  • 打赏
  • 举报
回复
谢谢楼上指正!
当时粘贴够来的时候没注意,是这样的:
strsql="select depshow,ID,dutyname,tb_duty.depname from tb_duty,tb_depart where tb_depart.depname=tb_duty.depname and tb_depart.depname='人事部'";
程序执行时为什么总有”由于结果集是由一个联接条件产生的,无法完成定位请求“的错误?
ziplj 2009-12-19
  • 打赏
  • 举报
回复
SQL语句有问题 怎么有两个Where
最好现在查询分析器里面调试好 再加到程序中去

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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