使用多个表中的多个变量搜索mysql

时间:2010-10-27 18:24:08

标签: php mysql

我正在使用php和mysql

您好我有几张表格中有关于图书的信息。

一张桌子就像这样

id,bookTitle,BookText

另一个是这样的

id,bookid,amountofsales

我想从一张表中搜索本书的文本和书名,但也能够从其他表中包含数量的销售额,以便给结果带来可能的偏见。

因此,例如,如果第1册有5万销售,并且匹配搜索“油”但书2有23,000销售,但也匹配“油”书1将稍微更相关。

然而,这只会产生一个小的偏见,因为如果一个人更多地匹配油,那么这应该仍然是最重要的结果。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

你必须加入你的桌子:

$searchQuery = "oil";

$sql = "SELECT a.bookTitle, a.BookText, b.amountofsales FROM table1 a, table2 b WHERE a.id = b.bookid AND (a.bookTitle LIKE '%".$searchQuery."%' OR a.BookText LIKE '%".$searchQuery."%') SORT BY b.amountofsales DESC";

$result = mysql_query($sql);
while( $obj = mysql_fetch_object($result) )
{
  echo $obj->bookTitle." has been sold ".obj->amountofsales." times and is relevant to your search";
}

请记住,我没有测试过上面的代码,但它可能会给你一个想法。

答案 1 :(得分:0)

您可以通过概述MySQL查询来关联两个表中的两个元组,如下所示:

SELECT B.bookTitle,B.bookText,S.amountOfSales FROM book B,sales S WHERE S.id = B.id ORDER BY S.amountOfSale DESC;

这将验证id的匹配(意味着不同的表是相关的,因为id是相同的),并提取所有相关数据。然后你只需解释数据。

不过要小心搜查外卡,他们可以提取大量不相关的数据,例如一本关于铝箔的书可能会在油之前拉起来。