我在过去的几个小时内遇到了一个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结果。 如果有人会对我的问题有所了解,我将不胜感激。
答案 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
列。如果情况并非如此,那么无论如何你都没有任何东西可以加入。