0

在我的主页上,我想显示我网站上最受欢迎的 30 个页面。我认为最好的方法是为每个单独的页面设置一个命中计数器,表中的一列称为 hit_counter。然后,每当查看页面时,hit_counter 都会增加 1。

然而,我的网站有许多不同的表格,例如酒店、餐馆、娱乐场所。我希望将它们全部混合在结果中,但我不确定从数据库中提取这些全部的查询是什么。

我想这将是某种加入。我还想获取每一行的名称、描述和 url,我已经在通用庄园中命名了列,例如 hotel_name、hotel_description、hotel_url、restaurant_name、restaurant_description 等。

然后查询将按 hit_counter DESC 排序。

那么做这样一个join的查询是什么,我的表叫做restaurants,hotels and entertainment。

4

1 回答 1

0

如果我没记错的话,您正在为每个类别页面创建新表。在我看来,最好的方法是为页面创建 1 个表格,为类别创建 1 个表格,为点击创建一个表格。您还可以有酒店表、餐厅表等,但酒店表和页面表之间存在差异......酒店应该存储有关每个酒店的信息,而页面应该存储有关每个页面的信息。

无论如何,类别表看起来像这样:

ID
Category

Pages 表应如下所示:

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:如有错别字见谅

于 2013-07-22T03:43:03.163 回答