2012-03-08 32 views
0

我有问题,我在搜索结果中的排序。MySQL的 - 结果排序Id's的数量在另一个表

我有两个表

表照片(第一台),在那里我有关于照片的信息和每一张照片都有编号。

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

______________________ 
|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将是第一,第二和第三将是照片与身份证2 ...有人可以帮助我吗?

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

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

+1

这是一门功课? – 2012-03-08 14:44:04

+1

你能发布查询(IES)你试过这么远吗? – 2012-03-08 14:45:26

回答

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 
+0

非常感谢您快速的答案!这看起来不错,但我需要按顺序(this)。因为,访客可以通过按钮改变排序,脚本只改变这个部分。 – user1257124 2012-03-08 16:36:15

+0

我不明白你想要什么。根据您的实际数据库结构查看更新后的查询。 – bfavaretto 2012-03-08 18:07:21

相关问题