-1

次のクエリを実行すると:
SELECT 1 FROM emp;

私は得る:

mysql> SELECT 1 FROM emp;  
+---+  
| 1 |  
+---+  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
| 1 |  
+---+  

私が行った場合:

SELECT 1 FROM emp e WHERE 20=e.deptno; 私は得る:

mysql> SELECT 1 FROM emp e WHERE 20=e.deptno;  
+---+  
| 1 |   
+---+  
| 1 |  
| 1 |   
| 1 |   
| 1 |   
| 1 |   
| 1 |    
+---+  
6 rows in set (0.00 sec)   

もしそうなら:

mysql> SELECT deptno FROM emp;  
+--------+  
| deptno |  
+--------+  
|     10 |   
|     10 |   
|     10 |   
|     20 |   
|     20 |   
|     20 |   
|     20 |   
|     20 |   
|     20 |  
|     30 |  
|     30 |  
|     30 |  
|     30 |  
|     30 |  
|    100 |  
+--------+  
15 rows in set (0.00 sec)  

前に6行と6行あることがわかります20SELECT 1 FROM emp e WHERE 20=e.deptno;

しかし、これらのクエリはどのように関連していますか?

4

3 に答える 3

3

deptnoとリテラル値を選択すると、次のようになります。

SELECT 1, deptno FROM emp

あなたが得る:

1   10
1   10
1   10
1   20
1   20
1   20
1   20
1   20
1   20
1   30
1   30
1   30
1   30
1   30
1  100

deptno次のように、20のみを除外する場合:

SELECT 1, deptno FROM emp where deptno = 20

前のクエリのこのサブセットを取得します。

1   20
1   20
1   20
1   20
1   20
1   20

結果からを除外した場合deptno:

SELECT 1 FROM emp where deptno = 20

次のもののみを取得します。

1
1
1
1
1
1
于 2013-04-21T20:21:24.323 に答える