join.sql
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. --
  2. -- join.sql
  3. --
  4. -- Test join clauses
  5. --
  6. CREATE TABLE JOIN_TBL (
  7.   i integer,
  8.   j integer,
  9.   x text
  10. );
  11. CREATE TABLE JOIN2_TBL (
  12.   i integer,
  13.   k integer
  14. );
  15. INSERT INTO JOIN_TBL VALUES (1, 3, 'one');
  16. INSERT INTO JOIN_TBL VALUES (2, 2, 'two');
  17. INSERT INTO JOIN_TBL VALUES (3, 1, 'three');
  18. INSERT INTO JOIN_TBL VALUES (4, 0, 'four');
  19. INSERT INTO JOIN2_TBL VALUES (1, -1);
  20. INSERT INTO JOIN2_TBL VALUES (2, 2);
  21. INSERT INTO JOIN2_TBL VALUES (3, -3);
  22. INSERT INTO JOIN2_TBL VALUES (2, 4);
  23. --
  24. -- Inner joins (equi-joins)
  25. --
  26. SELECT '' AS "xxx", *
  27.   FROM JOIN_TBL CROSS JOIN JOIN2_TBL;
  28. SELECT '' AS "xxx", *
  29.   FROM JOIN_TBL NATURAL JOIN JOIN2_TBL;
  30. SELECT '' AS "xxx", *
  31.   FROM JOIN_TBL INNER JOIN JOIN2_TBL USING (i);
  32. SELECT '' AS "xxx", *
  33.   FROM JOIN_TBL JOIN JOIN2_TBL ON (JOIN_TBL.i = JOIN2_TBL.i);
  34. SELECT '' AS "xxx", *
  35.   FROM JOIN_TBL JOIN JOIN2_TBL ON (JOIN_TBL.i = JOIN2_TBL.k);
  36. SELECT '' AS "xxx", *
  37.   FROM JOIN_TBL CROSS JOIN JOIN2_TBL;
  38. --
  39. -- Non-equi-joins
  40. --
  41. SELECT '' AS "xxx", *
  42.   FROM JOIN_TBL JOIN JOIN2_TBL ON (JOIN_TBL.i <= JOIN2_TBL.k);
  43. --
  44. -- Outer joins
  45. --
  46. SELECT '' AS "xxx", *
  47.   FROM JOIN_TBL OUTER JOIN JOIN2_TBL USING (i);
  48. SELECT '' AS "xxx", *
  49.   FROM JOIN_TBL LEFT OUTER JOIN JOIN2_TBL USING (i);
  50. SELECT '' AS "xxx", *
  51.   FROM JOIN_TBL RIGHT OUTER JOIN JOIN2_TBL USING (i);
  52. SELECT '' AS "xxx", *
  53.   FROM JOIN_TBL FULL OUTER JOIN JOIN2_TBL USING (i);
  54. --
  55. -- More complicated constructs
  56. --
  57. --
  58. -- Clean up
  59. --
  60. DROP TABLE JOIN_TBL;
  61. DROP TABLE JOIN2_TBL;