SQL问题 :想问多个括号嵌套的最外层的表还能在最里层表里用么

select*fromAJOIN(SELECT*FROMBWHEREB.字段1=(SELECT*FROMBWHEREB.字段1=A.字段1))我想问这样多括号的时候A的表... select *
from A
JOIN (
SELECT * FROM B
WHERE B.字段1=( SELECT *
FROM B
WHERE B.字段1 = A.字段1



)
我想问这样多括号的时候A的表里的字段还能在两个以上括号嵌套里使用么,现在根据我的测试只能在一个括号嵌套中能使用,但是两个或者两个以上就不行,问什么?我的测试结果是对的么?求认证和解答
展开
 我来答
百度网友9a842d4
推荐于2017-12-16 · TA获得超过141个赞
知道小有建树答主
回答量:77
采纳率:0%
帮助的人:84.7万
展开全部
不可以,join两端运算的表(或表表达式)必须是静态的,也就是说两边的表可以独立用select预览数据(有点独立子查询的意思),你这个写法,join右边的表表达式(派生表)是依赖于左表中某个字段的,也就是说,左表中每一条记录都对应着不同的右表(别和我说左表的那个字段都是一个值哈),这种需求需要用cross apply或者outer apply来实现,具体的你可以查一下apply的用法,如果你join用的比较熟的话,apply你很快就会了。
希望对你有所帮助,哈哈。
更多追问追答
追问
不对吧?我的第一层数据也是关联到最外层的A表的!如果不加第二层的话是没有问题的,所以你说的join两端可以独立SELECT出来我感觉是不是不对!我只是当用第二层去关联到最外层的时候就会有问题报的是表字段无效
追答
。。。你还是没明白联结的含义,你的第一层没有引用A表,ON后面只是个联结条件,你如果把ON后面的A表字段当成引用的话就错了,那个只是联结条件,表示A表和B表的哪些数据可以用于联结。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式