php - MySQL 全外连接

标签 php mysql search join

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

编辑:my source is here.

最佳答案

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/

相关文章:

mysql - 优化sql查询,加快搜索速度,目前搜索时间约为85秒

python - 二进制搜索功能

algorithm - A*算法重新打开顶点

php - 无法显示来自 mysql 数据库的图像

php - 如何检索存储在表中的sql查询并为表中的所有查询创建动态php页面

php - MySQL 使用 WHERE 和 OR

c# - 多线程环境下的mysql连接器

mysql - 对于回合制 Flash 游戏来说,轮询 MySQL 数据库是否足够?

php - 嵌入图像的脚本

php - Ajax 弹出窗口