本來對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...