2

在过去的几个小时里,我遇到了一个 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 个结果。如果有人能对我的问题有所了解,我将不胜感激。

编辑:我的来源在这里。

4

1 回答 1

2

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

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

于 2013-03-21T14:41:35.743 回答