關於sql中左連線的兩個問題

2021-09-30 07:34:34 字數 1212 閱讀 4910

本來對oracle中的左右連線已經非常熟悉,但是看到專案中寫的各式各樣的連線自己也迷惑了(+﹏+)~。

摘出來,希望火眼金睛o(≧v≦)o~~的朋友指點一二。

先謝謝了o(∩_∩)o。

為了容易理解,簡化了實際複雜的sql,但結構類似

問題1:

a文(專案使用的):

select  aa.x,bb.y,cc.z

from aa,bb,cc

where aa.id1 = bb.id1(+) and

aa.id2 = bb.id2(+) and

bb.id1 = cc.id1(+) and

bb.id2 = cc.id2(+) and

aa.m = 'test'

b文:select  aa.x,bb.y,cc.z

from aa,bb,cc

where aa.id1 = bb.id1(+) and

aa.id2 = bb.id2(+) and

aa.id1 = cc.id1(+) and

aa.id2 = cc.id2(+) and

aa.m = 'test'

sql本身想以aa表作為主表查詢,但在a文中偷換了主表,b文似乎沒什麼懸念。

想請教的是a文中移花接木的做法會產生問題麼?

問題2:

c文(專案使用的):

select  aa.x,bb.y,cc.z

from aa

left join bb on

aa.id1 = bb.id1 and

aa.id2 = bb.id2

left join cc on

bb.id1 = cc.id1 and

bb.id2 = cc.id2

where  aa.m = 『test』

d文:select  aa.x,bb.y,cc.z

from aa

left join bb on

aa.id1 = bb.id1 and

aa.id2 = bb.id2

left join cc on

aa.id1 = cc.id1 and

aa.id2 = cc.id2

where  aa.m = 『test』

也是aa表為主表,問題同上面的,c文的寫法與d文相比會差生查詢結果上的差異麼?

如果覺得a文與c文是一樣sql的不用寫法,費眼回答乙個就行。

兩個sql查詢語句之間的左連線left join

如下 子查詢內部也使用了左連線 select a.id,a.thumbnail,a.name,a.marketprice,a.memberprice a.personname,a.status,a.recieveorderdate,a.tracknumber,a.contact,a.reportse...

關於進製的兩個問題

進製轉換主要看個位與個位相乘。1 例如30 中在十進位制中有多少個0呢?5 120 隨後120 6 7 8 9都沒有零出現因為個位相乘沒有零。直到10!出現2個零。所以規律是尋找相乘等於5的因子數。有幾個5就有幾個零。所以20!5!有1個0 1 5 10!有2個0 2 5 15!有3個0 3 5 2...

SQL 中的左連線和右連線

2.sql left join 關鍵字 select column name s from table name1 left join table name2 on table name1.column name table name2.column name left join 關鍵字會從左表 t...