(问题更新了)SQL: 稍微复杂一点的代码,where 语句的执行

吃这口饭的写点笔记就算闲啊,这日子还咋过啊
 
吃这口饭的写点笔记就算闲啊,这日子还咋过啊
俺还有 Java 笔记捏,当年去 Carleton 跟那个苏联人 Batalove 练, 两个 A+ :cool:
 
老何,itpub java板块提问题的人好少,我翻了两页没找到可以回的.....
 
老何,itpub java板块提问题的人好少,我翻了两页没找到可以回的.....
我几年没有去哪块看了, yining 大师消失好久了

刚去看了,它有三个板块捏, 你看哪个?
 
也是。我原来以为是何仙自己学SQL做的笔记,现在想想可能是他上课的笔记?
各位,我的问题能帮忙回答一下吗?

吃这口饭的写点笔记就算闲啊,这日子还咋过啊
 
妞人。你读的是parttime还是full?
啥时候,我也读读,提高一下编程能力。

俺还有 Java 笔记捏,当年去 Carleton 跟那个苏联人 Batalove 练, 两个 A+ :cool:
 
我几年没有去哪块看了, yining 大师消失好久了

刚去看了,它有三个板块捏, 你看哪个?

Java入门与认证版 啊,这不要考认证嘛。
 
我想知道下面代码是如何执行的,尤其是那两个where语句?谢谢。
原来想先写下我的想法,但是可能写一大堆都是错误的。

SELECT firtname, lastname
FROM managers
WHERE 'MA'=
(​
SELECT jobcategory​
FROM supervisors​
WHERE managers.id=supervisors.id
)​
;
这个 where 要是给你返回一行以上的结果,你这 SQL 就出错了
 
我原来也是这么想的。但是我运行了,没有错,而且这是书上的范例。
难道是关联子查询的特征?

这个 where 要是给你返回一行以上的结果,你这 SQL 就出错了
 
我估计要正确理解这个程序,就要回到我原来的问题,如何理解两个where语句.
这是我的理解

1. 每次先判断下面那个红色where,一旦成立,直接判断上面的那个where,一旦匹配,就把manager表格的对应行做个记号。
2. 如果上面的想法正确,每次都是一对一的关系,不可能是一对多。
3. 在1.中我提到如果所有条件都成立,就做记号,而不是直接输出。这是因为where语句总在程序真正执行前就起作用了。

不知道这些理解是否对?
 
这个 where 要是给你返回一行以上的结果,你这 SQL 就出错了
老何,如果是 jobcategory=xxxx的话,你这个看法是对的
但是在这个情况下,是相反的
 
老何,如果是 jobcategory=xxxx的话,你这个看法是对的
但是在这个情况下,是相反的
我下班前看了一眼,他那个SQL好像不严格/规范。 SQL99 or something else ;)
 
后退
顶部