MySQL FULL OUTER JOIN

时间:2013-03-21 14:33:46

标签: php mysql search join

我在过去的几个小时内遇到了一个MySQL加入问题。 我有2张桌子:

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.

1 个答案:

答案 0 :(得分:2)

MySQL不支持FULL OUTER JOIN。这样做实际上是将article表别名为FULL。有两种语法错误:OUTER JOIN本身,以及LIKE值周围缺少引号。最有可能的是,JOIN ON article.label也没有做你想做的事。它必须是JOIN ON article.label = article_category.label

我很确定你不想要一个完整的外连接 - 从概念上讲,这将是每个表中不在另一个表中的值,但事实上它似乎你想要能够搜索两个标签字段。如果label是标识类别的列,则最好使用article_category id而不是当前的article.label列。如果情况并非如此,那么无论如何你都没有任何东西可以加入。