MYSQL PHP搜索函数内部联接不是必需的
我有一个搜索查询:MYSQL PHP搜索函数内部联接不是必需的,php,mysql,select,match,inner-join,Php,Mysql,Select,Match,Inner Join,我有一个搜索查询: SELECT a.id, a.name, i.image_id, MATCH(a.name, a.about, a.tags) AGAINST ('%s' IN BOOLEAN MODE) AS relevance FROM table_1 a INNER JOIN image_table i ON a.id = i.field_id WHERE MATCH(a.name, a.about, a.tags) AGAINST
SELECT a.id,
a.name,
i.image_id,
MATCH(a.name, a.about, a.tags) AGAINST ('%s' IN BOOLEAN MODE) AS relevance
FROM table_1 a
INNER JOIN image_table i ON a.id = i.field_id
WHERE MATCH(a.name, a.about, a.tags) AGAINST ('%s' IN BOOLEAN MODE)!=0
ORDER BY relevance DESC
此查询的输出非常简单,它检索与字段名称、关于和标记匹配的元组。输出还使用内部联接从另一个表获取相关图像
但如果没有图像,即如果用户没有上传图像(将其插入图像表),则整个字段不会标记为可行匹配,并作为结果返回
即使
图像不存在
因为我可以为匹配的元组生成一个默认图像
提前感谢。使用
左连接
SELECT a.id,
a.name,
i.image_id,
MATCH(a.name, a.about, a.tags) AGAINST ('%s' IN BOOLEAN MODE) AS relevance
FROM table_1 a
LEFT JOIN image_table i ON a.id = i.field_id
WHERE MATCH(a.name, a.about, a.tags) AGAINST ('%s' IN BOOLEAN MODE)!=0
ORDER BY relevance DESC
选择a.id,
a、 名字,
i、 图像标识,
将(a.name、a.about、a.tags)与(“%s”在布尔模式下)匹配为相关性
来自表1 a
a.id=i.field\u id上的左连接图像\u表i
其中(a.name、a.about、a.tags)与(“%s”在布尔模式下)匹配=0
按相关性顺序描述
你是不是在寻找一个左连接
而不是内部连接
?正是@colinmoreli谢谢,刚刚刷新了不同类型的连接我同意第一个更改,左连接,但是'OR i.field_id IS NULL'当然会返回表中的所有字段。我没有注意到您只与表1
中的列匹配。