php - 选择表 A 中的所有元素,按表 B 中链接到每个项目的条目数排序

标签 php mysql

我有一个带有书签的表,lz_link 和一个存储每次点击的名为 lz_hits 的链接的表。然后我想显示所有书签,按上周收到的点击次数排序。

这是我到目前为止的查询:

SELECT count(hit_time) as cnt, descr, l_id, url
FROM lz_link
LEFT JOIN lz_hits ON hit_lz=l_id
WHERE link_aktiv=1
  && hit_time >= '.(time()-Options::$most_hits_hit_days*3600*24).'
GROUP BY hit_lz
ORDER BY cnt DESC
LIMIT '.Options::$boxes_count.';

它有效,但我只得到一个在给定时间段内访问次数为零的书签。任何其他未访问过的书签根本不会显示。

为什么会发生这种情况?

如何获取所有书签,即使它们在给定时间段内没有被访问过?

最佳答案

将适用于 lz_hits 的任何条件从 WHERE 子句移至 ON 子句。 抱歉,我无法发布查询 - 我使用的是移动设备。

编辑:也许这可以帮助?

SELECT count(hit_time) as cnt, descr, l_id, url
FROM lz_link
LEFT JOIN lz_hits ON hit_lz=l_id 
   AND hit_time >= '.(time()-Options::$most_hits_hit_days*3600*24).'
WHERE link_aktiv=1
GROUP BY hit_lz
ORDER BY cnt DESC
LIMIT '.Options::$boxes_count.';

假设 link_active 和 hit_lz 来自表 lz_link。如果 link_active 不是,只需将其移至 ON 子句,就像我对 hit_time 所做的那样。 至于 hit_lz - 按左连接的列进行分组没有多大意义。考虑使用另一列进行分组。

关于php - 选择表 A 中的所有元素,按表 B 中链接到每个项目的条目数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5783033/

相关文章:

php - 如何从克隆的 laravel 项目生成迁移(表?)到本地数据库?

php - 插入到基于数组的表中

mysql - 获取mysql中准备好的语句列表

php - 如何在 Symfony 1.2 中获取表单中的用户数据?

php - SQL 语法错误,检查第 1 行 '0' 附近使用的正确语法

使用 Jquery Datepicker 进行 PHP MYSQL 日期范围搜索

php - 如何在 Yii2 中使用 kartik-Select2 小部件项目将所选项目保存到数据库?

php - 使用反引号(重音符)时字符串操作的规则是什么?

php - MySQL PHP 比较两个表并替换值

java - 具有该位置 [5] 的参数不存在;