Oracle左右全連線總結

2021-08-30 04:52:43 字數 2976 閱讀 8680

1.--建立測試資料

2.create table a(id number);

3.create table b(id number);

4.insert into a values(1);

5.insert into a values(2);

6.insert into a values(3);

7.insert into b values(1);

8.insert into b values(2);

9.insert into b values(4);

10.commit;

11.

12.--左:

13.--主流資料庫通用的方法

14.select * from a left join b on a.id=b.id;

15.--oracle特有的方法

16.select * from a, b where a.id=b.id(+);

17.

18. id id

19.---------- ----------

20. 1 1

21. 2 2

22. 3

23.

24.

25.--右:

26.--主流資料庫通用的方法

27.select * from a right join b on a.id=b.id;

28.--oracle特有的方法

29.select * from a, b where a.id(+)=b.id;

30.

31. id id

32.---------- ----------

33. 1 1

34. 2 2

35. 4

36.

37.

38.--內

39.--主流資料庫通用的方法

40.select * from a join b on a.id=b.id;

41.--where關聯

42.select * from a, b where a.id=b.id;

43.

44. id id

45.---------- ----------

46. 1 1

47. 2 2

48.

49.

50.--全外

51.--主流資料庫通用的方法

52.select * from a full join b on a.id=b.id;

53.--oracle特有的方法

54.select *

55. from a, b

56. where a.id = b.id(+)

57.union

58.select *

59. from a, b

60. where a.id(+) = b.id;

61.

62. id id

63.---------- ----------

64. 1 1

65. 2 2

66. 3

67. 4

68.

69.

70.--完全,也叫交叉連線或者笛卡爾積

71.--主流資料庫通用的方法

72.select * from a,b;

73.--或者

74.select * from a cross join b;

75.

76. id id

77.---------- ----------

78. 1 1

79. 1 2

80. 1 4

81. 2 1

82. 2 2

83. 2 4

84. 3 1

85. 3 2

86. 3 4

87.

88.

89.連線無非是這幾個

90.--內連線和where相同

91.inner join

92.--左向外連線,返回左邊表所有符合條件的

93.left join

94.--右向外連線,返回右邊表所有符合條件的

95.right join

96.--完整外部連線,左向外連線和右向外連線的合集

97.full join

98.--交叉連線,也稱笛卡兒積。返回左表中的每一行與右表中所有行的組合

99.cross join

100.

101.

102.--補充:

103.--左向外連線,返回左邊表所有符合條件的,

104.--注意這裡沒有第二個加號,會直接過濾掉資料,只顯示符合條件的記錄

105.select *

106. from a, b

107. where a.id = b.id(+)

108. and b.id = 2;

109.

110. id id

111.---------- ----------

112. 2 2

113.

114.

115.--左向外連線,返回左邊表所有符合條件的

116.--注意where上第二個加號,它的作用是修改右邊表記錄的顯示,例如如果b.id(+) = 2,顯示為2,否則顯示null

117.select *

118. from a, b

119. where a.id = b.id(+)

120. and b.id(+) = 2;

121.

122. id id

123.---------- ----------

124. 2 2

125. 3

126. 1

Oracle左右全連線總結

建立測試資料 create table a id number create table b id number insert into a values 1 insert into a values 2 insert into a values 3 insert into b values 1 i...

Oracle左右全連線總結

建立測試資料 create table a id number create table b id number insert into a values 1 insert into a values 2 insert into a values 3 insert into b values 1 i...

Oracle左右全連線總結

建立測試資料 create table a id number create table b id number insert into a values 1 insert into a values 2 insert into a values 3 insert into b values 1 i...