【问题标题】:Is there anyway for me to create a Drupal view from sql queries无论如何我可以从 sql 查询创建 Drupal 视图
【发布时间】:2014-03-25 15:36:39
【问题描述】:

无论如何,我是否可以从两个 MySQL 查询创建 Drupal 视图。我想创建事件视图,一个 MySQL 查询用于带来已经开始和尚未完成的事件,另一个查询用于显示事件还没有开始,一共展示了3个项目。

这是我要从中创建视图的两个 SQL 查询:

    SELECT f.delta      AS field_data_field_session_start_date_delta
     , f.entity_id  AS date_id_date_filter
     , f.delta      AS date_delta_date_filter
     , n.title      AS node_title
     , n.nid        AS nid
     , n.language   AS node_language
     , f.field_session_start_date_value AS field_data_field_session_start_date_field_session_start_date
     , f.field_session_start_date_value2 AS field_data_field_session_start_date_field_session_start_date2
     , 'node'       AS field_data_field_session_start_date_node_entity_type
  FROM `node` n
  JOIN `field_data_field_session_start_date` f
    ON f.entity_id = n.nid
   AND f.entity_type = 'node'
   AND f.deleted = '0'
   AND f.field_session_start_date_value >= NOW()
WHERE n.status = '1'
ORDER
    BY f.field_session_start_date_value ASC
LIMIT 3 OFFSET 0


SELECT f.delta      AS field_data_field_session_start_date_delta
     , f.entity_id  AS date_id_date_filter
     , f.delta      AS date_delta_date_filter
     , n.title      AS node_title
     , n.nid        AS nid
     , n.language   AS node_language
     , f.field_session_start_date_value AS field_data_field_session_start_date_field_session_start_date
     , f.field_session_start_date_value2 AS field_data_field_session_start_date_field_session_start_date2
     , 'node'       AS field_data_field_session_start_date_node_entity_type
  FROM `node` n
  JOIN `field_data_field_session_start_date` f
    ON f.entity_id = n.nid
   AND f.entity_type = 'node'
   AND f.deleted = '0'
   AND f.field_session_start_date_value <= NOW()
   AND f.field_session_start_date_value2 > NOW()
WHERE n.status = '1'
ORDER
    BY f.field_session_start_date_value ASC
LIMIT 3 OFFSET 0

【问题讨论】:

    标签: mysql sql drupal drupal-7 drupal-views


    【解决方案1】:

    我假设您知道如何从原始 sql 创建 Drupal 视图 - 即,只是其中一个查询。

    您可以使用 UNION 命令创建 1 个返回两个查询结果的查询(在您的情况下,将两个查询括在括号中以确保 ORDER BY 和 LIMIT 与内部查询相关联):

    (SELECT f.delta      AS field_data_field_session_start_date_delta
         , f.entity_id  AS date_id_date_filter
         , f.delta      AS date_delta_date_filter
         , n.title      AS node_title
         , n.nid        AS nid
         , n.language   AS node_language
         , f.field_session_start_date_value AS field_data_field_session_start_date_field_session_start_date
         , f.field_session_start_date_value2 AS field_data_field_session_start_date_field_session_start_date2
         , 'node'       AS field_data_field_session_start_date_node_entity_type
      FROM `node` n
      JOIN `field_data_field_session_start_date` f
        ON f.entity_id = n.nid
       AND f.entity_type = 'node'
       AND f.deleted = '0'
       AND f.field_session_start_date_value >= NOW()
    WHERE n.status = '1'
    ORDER
        BY f.field_session_start_date_value ASC
    LIMIT 3 OFFSET 0)
    UNION
    (SELECT f.delta      AS field_data_field_session_start_date_delta
         , f.entity_id  AS date_id_date_filter
         , f.delta      AS date_delta_date_filter
         , n.title      AS node_title
         , n.nid        AS nid
         , n.language   AS node_language
         , f.field_session_start_date_value AS field_data_field_session_start_date_field_session_start_date
         , f.field_session_start_date_value2 AS field_data_field_session_start_date_field_session_start_date2
         , 'node'       AS field_data_field_session_start_date_node_entity_type
      FROM `node` n
      JOIN `field_data_field_session_start_date` f
        ON f.entity_id = n.nid
       AND f.entity_type = 'node'
       AND f.deleted = '0'
       AND f.field_session_start_date_value <= NOW()
       AND f.field_session_start_date_value2 > NOW()
    WHERE n.status = '1'
    ORDER
        BY f.field_session_start_date_value ASC
    LIMIT 3 OFFSET 0)
    

    【讨论】:

      猜你喜欢
      • 2011-04-25
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多