在过去的几个小时里,我遇到了一个 MySQL 连接问题。 我有 2 张 table :
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 个结果。 如果有人能解释我的问题,我将不胜感激。
最佳答案
MySQL 不支持FULL OUTER JOIN
。其作用实际上是将 article
表别名为 FULL
。有两个语法错误:OUTER JOIN
本身,以及 LIKE
值周围缺少引号。 JOIN ONarticle.label
也很可能没有做你想要它做的事情。它必须是JOIN ONarticle.label =article_category.label
。
我很确定您不想要完整的外部联接 - 从概念上讲,这将是每个表中不存在于另一个表中的值,但实际上您似乎希望能够搜索 两个标签字段。如果label
是标识类别的列,则最好使用article_category id而不是当前的article.label
列。如果情况并非如此,那么您就没有任何可以加入表格的内容。
关于php - MySQL 全外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15550408/