在我的主页上,我想在我的网站上显示30个最受欢迎的页面。我认为最好的方法是为每个页面设置一个点击计数器,表格中的列名为hit_counter。然后,无论何时查看页面,hit_counter都会增加1。
但是我的网站有很多不同的表格,例如酒店,餐厅,娱乐。我希望它们在结果中混合使用,但我不确定从数据库中提取所有内容的查询是什么。
我想这会是某种联系。我还想要获取每一行的名称,描述和网址,我已将这些列命名为通用庄园,例如: hotel_name,hotel_description,hotel_url,restaurant_name,restaurant_description等。
然后查询将ORDER BY hit_counter DESC。
那么进行这种联接的查询是什么,我的表被称为餐馆,酒店和娱乐。
答案 0 :(得分:0)
如果我没弄错的话,你就是为每个类别页面创建一个新表。在我看来,最好的方法是如果你为页面创建了1个表,1个用于类别,1个用于命中。您还可以拥有酒店餐桌,餐厅餐桌等,但酒店餐桌和餐桌之间存在差异.....酒店应该存储每家酒店的信息,页面应该存储每页的信息。
无论如何,类别表看起来像这样:
ID
Category
页面表应如下所示:
ID
Category_id
url
title
description
etc
命中表应如下所示:
ID
category_id
page_id
hits
这种方式更容易编写查询
'SELECT p.url, p.description, p.title, h.hits FROM pages p JOIN hits h ON p.id=h.page_id ORDER BY h.hits DESC LIMIT 30'
没有测试,但这是我如何做的想法。
PS:对不起,如果有任何错别字