2012-03-08 47 views
0

我如何加入不依賴於LEFT多個表或右連接JOIN - 無論是爲了

例如:

t1 
     id | date 
     ----------- 
     NULL NULL 

t2 
     id | value 
     ------------ 
     1 | bla 

SELECT date,value 
FROM t2 LEFT JOIN t1 
    ON t1.id = t2.id where t2.id = 1 

- 選擇是確定

與右連接同一查詢返回空值...

回答

2
SELECT `date`, `value` FROM t2 FULL OUTER JOIN t1 ON t1.id = t2.id 

編輯: 這將返回所有記錄,即使這些連接字段上沒有匹配。 對不起,這會給你語法錯誤。在下面看到我的編輯。

如果你只是想匹配,使用inner join

SELECT `date`, `value` FROM t2 INNER JOIN t1 ON t1.id = t2.id 

編輯:沒有在MySQL沒有FULL OUTER JOIN。您將有UNION模擬,並結合了LEFTRIGHTJOIN

SELECT `date`, `value` FROM t2 LEFT JOIN t1 ON t1.id = t2.id 
UNION 
SELECT `date`, `value` FROM t2 RIGHT JOIN t1 ON t1.id = t2.id 

這也將返回你NULL價值觀,但他們不會匹配,因爲NULL != NULL

+0

我終於混有表連接,在那裏我肯定ID存在...... 是的全外連接mysql中http://www.xaprb.com/blog/2006/05/26不支持/如何到寫全外連接,在MySQL的/ – mort 2012-03-08 22:40:21

0

您必須使用FULL OUTER JOIN synstax 。事實上,左連接返回左列中的所有結果,而右連接返回右列中的所有結果。完全外在,所有都返回。

SELECT date,value FROM t2 FULL OUTER JOIN t1 ON t1.id = t2.id where t2.id = 1 
相關問題