+ -
当前位置:首页 → 问答吧 → 急、、、多表查询插入哪错了??

急、、、多表查询插入哪错了??

时间:2011-11-26

来源:互联网

sql = @"Insert into Course Values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "','"
  + TextBox4.Text + "','" + RadioButtonList1.SelectedValue + "',MajorId ,FacultuId,'" + TextBox6.Text + "') from Course "
  +"selecet Major.MajorId ,Faculty.FacultyId from Major,Faculty where Major.MajorName = '"+DropDownList1.SelectedValue+"' and Faculty.FacultyName='"
  +DropDownList2.SelectedValue+"'";
  这条语句哪错了???我想根据另外2个表查出来的数据插入到课程表中。。。没学过数据库的孩子伤不起啊。。

作者: CherryFun   发布时间: 2011-11-26

SQL code

--如果知道每列的记录值,可以:

insert into tb values(...)
insert into tb(col1,col2,...) values(...)

--如果是从其他表筛选数据插入,可以:

insert into tb
select ...
from tb1
where ...

insert into tb(col1,col2,...)
select ...
from ...
where ...

作者: AcHerat   发布时间: 2011-11-26

引用 1 楼 acherat 的回复:

SQL code

--如果知道每列的记录值,可以:

insert into tb values(...)
insert into tb(col1,col2,...) values(...)

--如果是从其他表筛选数据插入,可以:

insert into tb
select ...
from tb1
where ...

insert into tb(col1,col2,...)
sel……

那我要是知道一部分的值呢,另外部分的值要查另外2个表??

作者: CherryFun   发布时间: 2011-11-26

你在这个方法里打个断点,把sql字符串print出来,放SQL数据库查询分析器里执行看看,当然建个测试库看。

作者: AcHerat   发布时间: 2011-11-26

引用 2 楼 cherryfun 的回复:
引用 1 楼 acherat 的回复:

SQL code

--如果知道每列的记录值,可以:

insert into tb values(...)
insert into tb(col1,col2,...) values(...)

--如果是从其他表筛选数据插入,可以:

insert into tb
select ...
from tb1
where ...
……


这种同样用第二种,把你知道的列值用你的参数替代,其他列按表的查询插入那种方式写,大体是:

SQL code

insert into tb(col1,col2,col3,col4,col5)
select 'a',10,a.age,a.name,b.mark
from tb1 a join tb2 b on a.id = b.aid
where ....

作者: AcHerat   发布时间: 2011-11-26

insert into 的格式如下
insert into tb1 (id,name) select id,name from tb2

照着如上格式把你的程序拼成的SQL字符串改一下

作者: pengxuan   发布时间: 2011-11-26

引用 4 楼 acherat 的回复:

引用 2 楼 cherryfun 的回复:
引用 1 楼 acherat 的回复:

SQL code

--如果知道每列的记录值,可以:

insert into tb values(...)
insert into tb(col1,col2,...) values(...)

--如果是从其他表筛选数据插入,可以:

insert into tb
select ..……


sql = @"Insert into Course(CourseId,MajorId,FacultyId) selecet '"+TextBox1.Text+"' Major.MajorId ,Faculty.FacultyId from Major,Faculty where Major.MajorName = '" + DropDownList1.SelectedValue + "' and Faculty.FacultyName='"
  + DropDownList2.SelectedValue + "'";
我改成这样的了。。他还是说我select附近有错啊、、、

作者: CherryFun   发布时间: 2011-11-26

引用 5 楼 pengxuan 的回复:

insert into 的格式如下
insert into tb1 (id,name) select id,name from tb2

照着如上格式把你的程序拼成的SQL字符串改一下

sql = @"Insert into Course(CourseId,MajorId,FacultyId) selecet '"+TextBox1.Text+"' Major.MajorId ,Faculty.FacultyId from Major,Faculty where Major.MajorName = '" + DropDownList1.SelectedValue + "' and Faculty.FacultyName='"
  + DropDownList2.SelectedValue + "'";
我这样拼,,,什么错误啊。。。他说我select附近有错。。

作者: CherryFun   发布时间: 2011-11-26

sql = @"Insert into Course(CourseId,MajorId,FacultyId) selecet '"+TextBox1.Text+"' ,Major.MajorId ,Faculty.FacultyId from Major,Faculty where Major.MajorName = '" + DropDownList1.SelectedValue + "' and Faculty.FacultyName='"
  + DropDownList2.SelectedValue + "'";


你from后的两个表没有关联关系吗?没有的话估计会插入很多重复的数据。

作者: AcHerat   发布时间: 2011-11-26

sql = @"Insert into Course(CourseId,MajorId,FacultyId) select '"+TextBox1.Text+"' Major.MajorId ,Faculty.FacultyId from Major,Faculty where Major.MajorName = '" + DropDownList1.SelectedValue + "' and Faculty.FacultyName='"
  + DropDownList2.SelectedValue + "'";

是select,不是selecet
另外,你查询了两个表,两个表之间是什么关联关系,你的查询语句中没有体现出来

作者: pengxuan   发布时间: 2011-11-27

引用 4 楼 acherat 的回复:

引用 2 楼 cherryfun 的回复:
引用 1 楼 acherat 的回复:

SQL code

--如果知道每列的记录值,可以:

insert into tb values(...)
insert into tb(col1,col2,...) values(...)

--如果是从其他表筛选数据插入,可以:

insert into tb
select ..……


说真的,我们没学过数据库。。什么关联什么的都不懂。。这次是做这个鬼作业要用到数据库。。
我改成这样的 ,可是在数据库里面还是插不进去

代码如下:
SQL code

INSERT INTO Course
                (CourseId, MajorId, FacultyId)
SELECT   12 AS Expr1, Major.MajorId, Faculty.FacultyId
FROM      Major INNER JOIN
                Faculty ON Major.FacultyId = Faculty.FacultyId
WHERE   (Major.MajorName = '数学与计算机学院') AND (Faculty.FacultyName = '软件工程')

作者: CherryFun   发布时间: 2011-11-27

引用 9 楼 pengxuan 的回复:

sql = @"Insert into Course(CourseId,MajorId,FacultyId) select '"+TextBox1.Text+"' Major.MajorId ,Faculty.FacultyId from Major,Faculty where Major.MajorName = '" + DropDownList1.SelectedValue + "' and……

代码如下,可是还是插不进去
SQL code

INSERT INTO Course
                (CourseId, MajorId, FacultyId)
SELECT   12 AS Expr1, Major.MajorId, Faculty.FacultyId
FROM      Major INNER JOIN
                Faculty ON Major.FacultyId = Faculty.FacultyId
WHERE   (Major.MajorName = '数学与计算机学院') AND (Faculty.FacultyName = '软件工程')

作者: CherryFun   发布时间: 2011-11-27

楼主把你的表结构和数据贴出来,还有想要的结果也贴出来

作者: pengxuan   发布时间: 2011-11-27

引用 12 楼 pengxuan 的回复:

楼主把你的表结构和数据贴出来,还有想要的结果也贴出来

算了 我们下学期学数据库//我就用2条select语句读出那个2内容然后再插入算了。。现在木有时间研究比较高深的数据库了。。

作者: CherryFun   发布时间: 2011-11-27