標量子查詢(一)

LuiseDalian發表於2014-01-16
標量子查詢只和外連線語句等價

點選(此處)摺疊或開啟

  1. --下面的語句是否等價?
  2. SELECT t1.ID, t2.ID FROM t1, t2 WHERE t1.ID = t2.ID;
  3. SELECT t1.ID, (SELECT t2.ID FROM t2 WHERE ID = t1.ID) FROM t1;

  4. --構造環境,進行驗證
  5. DROP TABLE t1;
  6. CREATE TABLE t1 (ID INT);
  7. INSERT INTO t1 VALUES (1);
  8. INSERT INTO t1 VALUES (2);
  9. INSERT INTO t1 VALUES (3);
  10. COMMIT;

  11. DROP TABLE t2;
  12. CREATE TABLE t2 (ID INT );
  13. INSERT INTO t2 VALUES (1);
  14. INSERT INTO t2 VALUES (2);
  15. INSERT INTO t2 VALUES (NULL);
  16. COMMIT;

  17. --執行如下,發現兩者並不等價。
  18. SELECT t1.ID, t2.ID FROM t1, t2 WHERE t1.ID = t2.ID;
  19.         ID ID
  20. ---------- ----------
  21.            1 1
  22.            2 2
  23.          
  24. SELECT t1.ID, (SELECT t2.ID FROM t2 WHERE ID = t1.ID) FROM t1;

  25.         ID (SELECTT2.IDFROMT2WHEREID=T1.ID)
  26. ---------- --------------------------------
  27.          1 1
  28.          2 2
  29.          3

  30. --實際上標量子查詢只和外關聯語句完全等價,具體試驗如下:
  31. SELECT t1.ID, t2.ID FROM t1, t2 WHERE t1.ID = t2.ID(+);

  32.         ID ID
  33. ---------- ----------
  34.            1 1
  35.            2 2
  36.            3
  37. SELECT t1.ID, (SELECT t2.ID FROM t2 WHERE ID = t1.ID) FROM t1;

  38.         ID (SELECTT2.IDFROMT2WHEREID=T1.ID)
  39. ---------- --------------------------------
  40.            1 1
  41.            2 2
  42.            3

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1071303/,如需轉載,請註明出處,否則將追究法律責任。

相關文章