小编Ora*_*s13的帖子

Mysql AVG忽略零

我需要在列上执行平均值,但我知道该列中的大多数值都将为零.在所有可能的行中,只有两行可能具有正值.如何告诉mySQL忽略零并且仅平均实际值?

mysql null average zero

17
推荐指数
2
解决办法
2万
查看次数

Rails Active Record选择父和子作为一个结果

我的申请中有父/子关系

class Polling
 has_many :alerts, :dependent => :destroy

class Alert
 belongs_to :polling
Run Code Online (Sandbox Code Playgroud)

在我的警报索引页面上,我需要显示每个父项的一些数据,这会产生两个查询

Alert Load (6.1ms)  SELECT * FROM (SELECT * FROM "ALERTS" INNER JOIN "POLLINGS" ON "POLLINGS"."ID" = "ALERTS"."POLLING_ID" ORDER BY "ALERTS"."ID" DESC) WHERE ROWNUM <= 1
Polling Load (1.8ms)  SELECT "POLLINGS".* FROM "POLLINGS" WHERE "POLLINGS"."ID" = 10113 AND ROWNUM <= 1
Run Code Online (Sandbox Code Playgroud)

显然,这会使页面加载时间非常可怕,因为它必须遍历每个页面并拉动父对象.

我尝试过一些东西,比如

> Alert.joins(:polling).where(...)
> Alert.includes(:polling).where(...)
> Alert.joins(:polling).select('*').where(...)
Run Code Online (Sandbox Code Playgroud)

每当我访问索引页面时,每次收到两个不同的查询.每个Alert一个,然后另一个获取其父数据.如何在一行上执行此操作,以便在我提取警报时,我还可以获取其关联的父数据?从另一端似乎没有办法解决这个问题,因为如果我这样做Pollings.where(...),就不会把孩子当成一个群体.

activerecord ruby-on-rails nested-attributes

6
推荐指数
1
解决办法
2416
查看次数

Drupal 6:在自定义模块表单上实现Wysiwyg

我有一个自定义表单,我用Form API编写.我们在网站上实现了WYSIWYG模块和TinyMCE,将使用该模块.如何在自定义表单文本区域上实现WYSIWYG api?

谢谢!

wysiwyg drupal drupal-6 drupal-modules

3
推荐指数
1
解决办法
1684
查看次数

如何在视图中主题公开过滤器项目 - drupal 6

我试图在我创建的视图上的一组特定的公开过滤器上添加一些样式.

该视图称为user_search,因此我创建了views-exposed-form - user-search.tpl.php并且不起作用(它所做的只是删除了公开的过滤器,但仍然显示了视图).views-exposed-form - user-search - page.tpl.php也得到了相同的结果.

即使它确实有效,我仍然不知道要放在哪里以显示表单,只是为了我可以添加样式或容器div.

print drupal_render($form); 不工作.

views drupal-views drupal-6

3
推荐指数
1
解决办法
5330
查看次数

哪个更有效:SQL JOIN还是嵌套的PHP循环?

我有几个表,我需要从中显示数据.

Schools
-------
id | Title

Programs
--------
id | descr | title | type | school.id
Run Code Online (Sandbox Code Playgroud)

当然,不是最好的设置,但我没有任何关于数据库结构的事情.

我需要创建一个列表,按学校,程序和程序类型分隔.现在,我有一个巨大的嵌套循环(伪代码):

Select * from Schools
For Each School
    print $school_header;
    Select Program Type from Programs WHERE School.id = $school_id 
        For Each Program type
           print $type_header;
           Select * from Programs where School.id = $school_id and type = $program_type
           For Each Program
               print $program_link;
Run Code Online (Sandbox Code Playgroud)

不用说它一团糟.

最终结果是一个列表:

  • 计划1
    • 计划类型1
      • 程序
      • 程序
    • 计划类型2
      • 程序
      • 程序
    • 计划类型3
      • 程序

有没有办法用更少的查询和更少的数据库密集的代码来做到这一点?

php sql join while-loop nested-loops

2
推荐指数
1
解决办法
1808
查看次数