2012-12-07 30 views
3

我想改变我的看法查询改变我的查询视图排序。Drupal的观点有两个标准

所以我想添加一个查询,如:

<select From (select from where) order by) order by > 

,只是为了我的数据的两倍。

也没有任何其他办法可以做到我想要的东西,即使不使用hook_view_query_alter

我尝试了很多的方法和模块(views_php,views_raw_sql,view_field_View)和 还试图存储过程,但不知道如何调用它在Drupal的观点

任何想法或暗示吗?

+1

您应该为您的问题添加更多的上下文。你的问题是你无法得到正确的查询或是Drupal问题吗? – KerrM

+0

对不起that.my第一个问题是,我试图整理我的看法,由于2日(先用后日期),然后用我的(开始日期)的领域,所以我在发布日期排序获得的说明数据,然后排序它再次与开始日期字段asc.so我试图改变查询嵌套select语句。如果你可以告诉我如何做到这一点或以任何其他方式做同样的事情,这将是一种你。感谢您的回复 。 – JokerDev

+0

你现在可以发布你的查询吗?你使用的是什么DBMS?如果您在MySQL中使用子查询,则语法为'SELECT * FROM t1 WHERE column1 =(SELECT column1 FROM t2);'。 – KerrM

回答

0

你不需要嵌套SELECT子句另一个排序标准添加到查询。下面的语法会做你想要什么:

SELECT ... 
FROM ... 
ORDER BY date1, date2 

这将date2的通过日期1对结果进行排序,然后。

在视图中,只需添加其他排序标准,您正在编辑的视图,就这么简单。

+0

感谢您的回复,我已经添加第二排序标准,但是这导致第一级排序基于日期1,如果用相同的日期1两个事件存在这两个记录将只执行一个 基于date2字段的二级排序。这不是我想要做的。我想对日期1进行排序,所有数据都按日期1(这是发布日期/降序)进行排序,然后从排序数据中选择带有date2(这是一个事件开始日期)事件的升序。 – JokerDev

+0

好吧,我想我现在得到你想要的。嵌套选择中的“LIMIT”子句意味着您需要获取3个最新事件(按date1),然后按date2对其进行排序。那是对的吗? – jamix

+0

是的,如果有任何其他方式(drupal的方式),即使不使用hook_view_query_alter我会明白,我的项目取决于这种排序,我还是一个初中。再次感谢。 – JokerDev