问题描述
在线等高分了一个很傻的问题,我现在的问题是我要从数据库里取出一个字段的内容然后用这些内容去到另一个数据库里做where的条件也就是说比如我数据库data库里有三个表分别是pot和mobedobpot表有两个字段po和bo,dob有两个字段dodi,mobe有三个字段分别是mo,mi,mr内容是下面是pot的结构情况mobo1小孩2男人3同学4孩子dob内容dodi1早上2下午3晚上mobe结构情况momimr1早上孩子2早上男人3晚上男人4老婆老公5爷爷孩子我现在要取表pot的字段bo里的内容孩子和男人和早上晚上分别使用孩子和早上孩子晚上男人和早上男人和晚上在表mobe里找出符合的内容字段谢谢了大家帮个忙急啊
解决方案
解决方案二:
;捞起来你们也太牛了
解决方案三:
这么快就要捞了
解决方案四:
select*frommobewheremrin(selectbofrompotwhereboin('孩子','男人'))andmiin(selectdifromdobwherediin('早上','晚上'))
解决方案五:
问题还是有些不清晰。从数据库里面读多个表,填充DataSet。在这里面操作即可。如果你说得不在一个数据库下,直接建立DataBaseLink即可。
解决方案六:
汗首先孩子和男人的值不是固定的有可能今天是孩子和男人明天就是别的了所以用in()不成立
解决方案七:
而且用in()andin()这样只取出来了一个参数我有可能是in(孩子,男人)and(""")in(女人,男人)andin()我有可能是两个参数一起取出来
解决方案八:
看楼主的问题,眼睛都花了
解决方案九:
汗捞起来
解决方案十:
楼主的问题不清晰:有可能今天是孩子和男人明天就是别的了所以用in()不成立---------------------------------应该写清楚输入的值是什么类型(比如说一个字符串数组什么的),要的结果有是什么。
解决方案十一:
还有,你前面说的是要求在不同的数据库之间做查询但是后面给的条件以及问题是在同一数据库里做操作请讲清楚点,而且,值的类型也没说清楚,可以的话把表里的值的类型发一下
解决方案十二:
其实就是先取出两个数据然后再根据这两个数据在一个表里得到很多记录然后同时符合两条记录的就显示也就是我说的简单的abcde做演示比如我先使用ab在表里得到了cde然后分别使用ac,ad,ae,bc,bd,be在另外一个表里找到符合这些条件的记录
解决方案十三:
路过帮顶一下
解决方案十四:
要不你试下别名?
解决方案十五:
比较复杂,建议取出来再组合然后查询
解决方案:
汗不知道怎么出啊帮个忙提醒下行不
解决方案:
如果查询条件都不一样的话,个人感觉还是做参数再查询会比较好一点。
解决方案:
对啊我就是计划先查出来然后给变量但是有多个
解决方案:
打鱼?
解决方案:
selectname,dotfromCwhere(dotin(selectdotfromBwheredotlike'%上'))and(namein(selectnamefromAwherenamelike'男%'))
解决方案:
把&apos去掉哈刚才是直接从查询分析器里复制出来的
解决方案:
晕死看错了条件,我用的是男孩不是孩子。。
解决方案:
declare@Anvarchar(8)declare@Bnvarchar(8)declare@Cnvarchar(8)declare@Dnvarchar(8)select@A=(selectbofrompotwheremo=2)select@B=(selectbofrompotwheremo=4)select@C=(selectdifromdobwheredo=1)select@D=(selectdifromdobwheredo=3)select*frommobewhere(mi=@Cormi=@D)and(mr=@Aormr=@B)至于变量的赋值就要看你的了,我只是简单的举个例子,思路给你了,具体怎么解决自己考虑一下吧。
解决方案:
selectmi,mrfrommodewhere(miin(selectdifromdobwheredilike'%上'))and(mrin(selectbofrompotwherebo='男人'orbo='孩子'))改好了试下这个
解决方案:
把&apos改成单引号。。。这里一输单引号就变&apos
解决方案:
22楼用的是存储过程,思路清晰的一塌糊涂,看不懂的就是刚出壳毛还湿着的雏鸟了
解决方案:
ding
解决方案:
其实就select语句就可以了吧?
解决方案:
随手敲的,不排除手误selectmo,mi,mrfrommobebinnerjoin(selectbo,difrompotafulljoindobbwhereboin('男人','孩子')anddiin('早上','晚上'))aonchecksum(bo,di)=checksum(mr,mi)
解决方案:
我还忘记了一个事情而且是要动态显示参数
解决方案:
我在28楼写的语句有问题,敲忘了.将fulljoin改为crossjoin或不改,但是加上on1=1的条件.比如selectmo,mi,mrfrommobebinnerjoin(selectbo,difrompotacrossjoindobbwhereboin('男人','孩子')anddiin('早上','晚上'))aonchecksum(bo,di)=checksum(mr,mi)
或selectmo,mi,mrfrommobebinnerjoin(selectbo,difrompotafulljoindobbon1=1whereboin('男人','孩子')anddiin('早上','晚上'))aonchecksum(bo,di)=checksum(mr,mi)
动态显示参数,什么意思
解决方案:
pot:mobo1小孩2男人3同学4孩子dob:dodi1早上2下午3晚上mobe:momimr1早上孩子2早上男人3晚上男人4老婆老公5爷爷孩子查mobe为:where(mi='早上'andmr='孩子')OR(mi='早上'andmr='男人')OR(mi='晚上'andmr='孩子')OR(mi='晚上'andmr='孩子')或where(mi='早上'ormi='晚上')AND(mr='孩子'ormr='男人')或where(miin('早上','晚上'))AND(mrin('孩子','男人'))结合pot和dob表查询:将以上的"='早上'"用"in(selectdifromdobwheredi='早上')""='晚上'"用"in(selectdifromdobwheredi='晚上')""='孩子'"用"in(selectbofrompotwherebo='孩子')""='男人'"用"in(selectbofrompotwherebo='男人')"未经测试.!
解决方案:
--查询mobe:where(mi='早上'andmr='孩子')OR(mi='早上'andmr='男人')OR(mi='晚上'andmr='孩子')OR(mi='晚上'andmr='孩子')--或where(mi='早上'ormi='晚上')AND(mr='孩子'ormr='男人')--或where(miin('早上','晚上'))AND(mrin('孩子','男人'))--结合pot和dob表查询:--将以上的"='早上'"用"in(selectdifromdobwheredi='早上')"--"='晚上'"用"in(selectdifromdobwheredi='晚上')"--"='孩子'"用"in(selectbofrompotwherebo='孩子')"--"='男人'"用"in(selectbofrompotwherebo='男人')"--未经测试.!
解决方案:
学习
解决方案:
好热闹啊,用innerjoin不都搞定了,或者做个视图。25楼的还看不起22楼的,技术无极限。不要看不起对方,要互相帮助。
解决方案:
恩是啊,innerjoin就可以搞定啊
解决方案:
要求好长
解决方案:
接分的!!不错!
解决方案:
其实问题并不难,只是LZ描述完之后大家就有抓狂的感觉了.无非就是select*fromawherea.xxin(//或者是别的条件关键字selectb.xxfrombwherexxxx)画个图,把思路缕一下,这并不是你不知道解决这个问题的技术,而是没有抓住思考问题的逻辑.多想一想.还有就是你那是在不同的数据表中联合查询好不好.那不是不同数据库间联合查询
解决方案:
一个复杂的联合查询和动态的条件而已啊~~~搞那么复杂~~~呵~~不过还是学习了~~~
解决方案:
我以前也想过这样的问题,where条件是不定数目的内容的组合,后来还是先把字段内容取出来做循环的
解决方案:
这个问题不简单啊
解决方案:
还是没达到要求可能是我讲的太笼统了我把具体的说下首先我是不知道要查询什么值的首先我们必须从一个表里取出来比如值是早上和晚上也有可能是早上下午晚上所以我的思路必须把取出来的参数付给一个变量但是我不明白怎么让变量同时具有早上晚上下午这三个参数而且我还要使用这三个参数分别去做条件取相对应的字段
解决方案:
此事易耳.早说出不不就结了declare@personvarchar(1000),@timevarchar(1000)select@person='男人,孩子',@time='早上,晚上'selectmo,mi,mrfrommobebinnerjoin(selectbo,difrompotacrossjoindobbwherecharindex(bo,@person)>0andcharindex(di,@time)>0)aonchecksum(bo,di)=checksum(mr,mi)