Mysql - 按照另一个表中Id的数量排序结果

时间:2012-03-08 14:38:37

标签: mysql

我的搜索结果排序有问题。

我有两张桌子

表格照片(第一张表格),其中包含有关照片的信息,每张照片都有ID。

当有人点击结果(照片)脚本时,将有关它的信息保存到第二个表格。 表(第二个表)看起来像这样

______________________
|ID of photo| keyword|

按照第二张表中的照片ID计数对结果进行排序

所以order by (something) + (something) + (count id´s of photo for phrase by user (keyword))

例如:

表中有:

|id|keyword|
|5 |car    |
|5 |car    |
|6 |car    |
|6 |car    |
|2 |car    | 
|5 |car    |

搜索查询:

SELECT * FROM bx_photos_main WHERE (Title LIKE '%keyword%') OR (Desc LIKE '%keyword%') OR (Categories LIKE '%keyword%')order by (order) DESC LIMIT 0, 10;

当有人尝试找到“汽车”时,照片5将是第一张,第6张和第三张将是带有身份证2的照片...有人可以帮帮我吗?

结构 bx_photos_main
ID  -  int(10)  -  UNSIGNED  -  AUTO_INCREMENT

_bx_hledej(秒表)
id     - int(11)
keyword - varchar(20)

1 个答案:

答案 0 :(得分:0)

要按每个关键字的照片数量计算(和排序),您可以使用如下查询:

 SELECT 
     photos.id,
     photos.Title,
     photos.Desc,
     photos.Categories
 FROM bx_photos_main photos
 LEFT OUTER JOIN _bx_hledej keywords
 ON keywords.id = photos.id
 WHERE (Title LIKE '%keyword%') OR (Desc LIKE '%keyword%') OR (Categories LIKE '%keyword%')
 GROUP BY keywords.keyword
 ORDER BY COUNT(*) DESC