2013-03-21 123 views
2

我得到了一個MySQL連接問題我試圖找出過去的幾個小時。 我有2個表:MySQL全外連接

article : 
id(int) 
label(varchar) 
direct_url(varchar) 

article_category: 
id(int) 
label(varchar) 

我試圖使用標籤和連接兩個表進行搜索查詢。我這樣做:

SELECT label,direct_url FROM article FULL OUTER JOIN article_category ON article.label WHERE label LIKE %$q% ORDER BY label ASC 

這顯然是錯誤的,因爲它不起作用。無論搜索關鍵字($ q)如何,每次都得到0個結果。 如果有人對我的問題有所瞭解,我將不勝感激。

編輯:my source is here.

+0

ON article.label「= article_category_label」,我認爲你需要在引號部分添加 – johnyTee 2013-03-21 14:37:48

+0

@johnyTee:感謝您的答覆,我一直有和沒有......沒有成功嘗試.. – Jay 2013-03-21 14:39:35

回答

2

MySQL不支持FULL OUTER JOIN。它的作用實際上是articleFULL。有兩個語法錯誤:OUTER JOIN本身,並且缺少LIKE值附近的引號。最有可能的是,JOIN ON article.label也沒有做你想做的事。它必須是JOIN ON article.label = article_category.label

我敢肯定,你不想要一個完整的外連接 - 從概念上講,這將是每個表中的值不在另一箇中,但事實上,它似乎像你想能夠搜索標籤字段。如果label是標識類別的列,則最好使用article_category標識而不是當前的article.label列。如果情況並非如此,那麼你無論如何都沒有任何東西可以加入表格。

+0

我已經改變了它以建議的ID和它的工作。我也得到了2個查詢而不是1個JOIN的結果。非常感謝你指出,它幫助了我很多! – Jay 2013-03-21 14:46:25