INNER JOIN mysql布尔值错误


INNER JOIN mysql boolean error

$results2=mysql_query("
SELECT * FROM searchengine
WHERE
   id IN (" . implode(',', $ids) . ")
   OR id IN (" . implode(',', $ids2) . ")
INNER JOIN keywords ON searchengine.id=keywords.id
ORDER BY
   (relevant-irrelevant) DESC,
   (rating/votes) DESC,
   report ASC,
   LENGTH(description) DESC,
   title ASC
LIMIT $page, $limit
");

上面代码中的某些内容并不像我想象的那样起作用,While循环返回布尔错误。

内爆函数的代码运行良好。

我的数据库是搜索引擎关键字

搜索引擎:id,title,desc。。。

关键词:num,id,a,b

id中的A和B应该添加到搜索引擎中(基于相同的id(,以生成类似(id,title,desc,A,B…(的内容。问我你需要更多详细信息。

注意:搜索引擎id是唯一的数字,但关键字可以多次具有相同的id(其中一个相同的id由A和B值拾取并插入为$ids1(。

  • 将where子句移到联接下面
  • 用表名限定id。searchengine.id

SELECT *
FROM searchengine
INNER JOIN keywords ON searchengine.id=keywords.id
WHERE
   searchengine.id IN (" . implode(',', $ids) . ")
   OR searchengine.id IN (" . implode(',', $ids2) . ")
ORDER BY
   (relevant-irrelevant) DESC,
   (rating/votes) DESC,
   report ASC,
   LENGTH(description) DESC,
   title ASC
LIMIT $page, $limit

WHERE子句应该位于JOIN之后。

SELECT * 
    FROM searchengine 
        INNER JOIN keywords 
            ON searchengine.id=keywords.id 
    WHERE id IN (" . implode(',', $ids) . ") 
       OR id IN (" . implode(',', $ids2) . ")
    ORDER BY (relevant-irrelevant) DESC, (rating/votes) DESC, report ASC,  LENGTH(description) DESC, title ASC 
    LIMIT $page, $limit