2016-10-22 87 views
2

假設我們有一個EMPLOYEE和一個DEPENDENT表。每個員工都有一個標識符Ssn,可能還有一個標識符爲Essn的從屬人員。以下兩個查詢是否相同?左連接可以表示爲右連接,反之亦然?

SELECT DISTINCT E.Lname, D.Dependent_name 
FROM ((EMPLOYEE E) LEFT OUTER JOIN (DEPENDENT D) ON E.Fname=D.Dependent_name); 

SELECT DISTINCT E.Lname, D.Dependent_name 
FROM ((DEPENDENT D) RIGHT OUTER JOIN (EMPLOYEE E) ON E.Fname=D.Dependent_name); 

一般情況下,是不是真的

(TABLE A) LEFT OUTER JOIN (TABLE B) 

相同

(TABLE B) RIGHT OUTER JOIN (TABLE A) 

+0

如果你反轉表,你可以使用左連接例如。 tableA右連接表B與tableB左連接表A相同A – scaisEdge

+0

是的,這就是應該如何工作的。我注意到使用第一種形式(LEFT JOIN)更爲常見,但我認爲這是因爲開始先寫需要的數據然後再寫可選的數據會更自然。 – Insac

回答

0

是的,的確如此,但我強烈建議不要使用RIGHT JOIN。 由於我們的自然閱讀順序是從左到右和從上到下,RIGHT JOIN以這種方式非常不自然。 另外,如果你有一個LEFT JOIN和RIGHT JOIN的混合,它會非常非常難以遵循。

+0

@JohnZach,P.s.如果你喜歡你可能想要讚揚的答案 –