基于其他表列值过滤结果的全文搜索

问题描述 投票:0回答:1

我正在搜索一个表(t1),其中每个记录都链接到t2。但只需要链接到t2的t1结果(其中t2.rel_mag ='2')

我听不清

AND t2.rel_mag = '2' AND rel_active = '1' 

要在下面的查询中使用,现在将提供所有结果,而不是仅来自以下内容:t2.rel_mag ='2'

SELECT t1.relID as relID,+ more columns,
( (1.3 * (MATCH(mag_title) AGAINST ('$_GET[search]%' IN BOOLEAN MODE))) 
+ (0.6 * (MATCH(mag_webheader) AGAINST ('%$_GET[search]%' IN BOOLEAN MODE))) ) 
AS relevance FROM t1 
LEFT JOIN t2 ON t1.relnr=t2.relid 
WHERE ( MATCH(mag_title,mag_webheader) AGAINST ('$_GET[search]%' IN BOOLEAN MODE) ) 
HAVING relevance > 0  
ORDER BY relevance DESC LIMIT 0,15

感谢您的任何帮助!

mysql full-text-search
1个回答
0
投票

假设您rel_active属于t2

将两个都添加到连接中,以便选择一个符合两个值的t2

SELECT t1.relID as relID,+ more columns,
( (1.3 * (MATCH(mag_title) AGAINST ('$_GET[search]%' IN BOOLEAN MODE))) 
+ (0.6 * (MATCH(mag_webheader) AGAINST ('%$_GET[search]%' IN BOOLEAN MODE))) ) 
AS relevance FROM t1 
LEFT JOIN t2 ON t1.relnr=t2.relid AND t2.rel_mag = '2' AND t2.rel_active = '1' 
WHERE ( MATCH(mag_title,mag_webheader) AGAINST ('$_GET[search]%' IN BOOLEAN MODE) ) 
HAVING relevance > 0  
ORDER BY relevance DESC LIMIT 0,15
© www.soinside.com 2019 - 2024. All rights reserved.