问题描述
从表1选出age=20的所有行,从表2选出city=S的所有行,把表1和表2满足条件的行crossjoin,把结果中的table1.name+table2.school展示在listbox中。如SmithsHarvardKingPrincetonGreenYale。谢谢!最好能有代码。因为我试过各种方法,最后都因有语法错误或者别的错误失败。
解决方案
解决方案二:
遍历两个数据集,自己拼就是了,啥玩意这是
解决方案三:
应该就是sql语句啊。或者程序处理就是了啊。没有明白的行合并是什么效果,最好举个例子说明下。
解决方案四:
selecta.name,b.school,a.name+''+b.schoolasnameschoolfrom(select*fromtable1whereage=20)acrossjoin(select*fromtable2wherecity='s')bona.name=b.name
解决方案五:
引用3楼happy09li的回复:
SQLcodeselecta.name,b.school,a.name+''+b.schoolasnameschoolfrom(select*fromtable1whereage=20)acrossjoin(select*fromtable2wherecity='s')bona.name=b.name
我的a.name不等于b.name,我把这句on删除了。运行到myCommand.Fill(myDataSet,"nameschool");出错,IErrorInfo.GetDescription因E_FAIL(0x80004005)而失败。
解决方案六:
引用2楼jinyuttt的回复:
应该就是sql语句啊。或者程序处理就是了啊。没有明白的行合并是什么效果,最好举个例子说明下。
三楼理解是正确的,就是那个样子。我知道用SQL,但是我想到的是建三个临时表:把从表1查到的结果放到临时表1,把表2查到的放到临时表2,再把临时表12crossjoin,把结果放在临时表3,把临时表3结果显示出来。我希望不要用到临时表,直接将结果显示在listbox中。
解决方案七:
引用1楼bdmh的回复:
遍历两个数据集,自己拼就是了,啥玩意这是
理论上我当然懂遍历两个数据集
解决方案八:
你把sql结果集放到dataset里然后绑定到listbox不就行了?
解决方案九:
哈哈千奇百怪啊
解决方案十:
intage=20;stringcity="S";varz=formqinb1formwinb2whereq.age==20wherew.city==Sselectq.name+w.school;
listbox1绑定z
解决方案十一:
intage=20;stringcity="S";varz=formqinb1formwinb2whereq.age==agewherew.city==cityselectq.name+w.school;
解决方案十二:
select(casewhen1=1then(name+school)end)asnameshcoolfrom(selectt1.name,t2.schoolfromtable1t1leftjointable2t2ont1.schoolID=t2.schoolIDwheret1.age=20andt2.city='S')asclistbox1.DataTextField="nameshcool";listbox1.DataValueField=""listbox1.DataSource=db.get()....listbox1.DataBind();