Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal:MySQL选择属于特定论坛的所有帖子_Mysql_Drupal_Phpmyadmin_Drupal 7 - Fatal编程技术网

Drupal:MySQL选择属于特定论坛的所有帖子

Drupal:MySQL选择属于特定论坛的所有帖子,mysql,drupal,phpmyadmin,drupal-7,Mysql,Drupal,Phpmyadmin,Drupal 7,我需要在Drupal中选择一系列特定类别(论坛)中发布的所有消息(第一篇帖子和回复) 第一篇帖子存储在字段数据\u正文中,回复存储在字段数据\u评论\u正文中 SELECT taxonomy_forums.taxonomy_forums_tid AS tid, comment_body.entity_id, comment_body.comment_body_value AS body FROM field_data_taxonomy_forums AS taxo

我需要在Drupal中选择一系列特定类别(论坛)中发布的所有消息(第一篇帖子和回复)

第一篇帖子存储在
字段数据\u正文中
,回复存储在
字段数据\u评论\u正文中

SELECT
    taxonomy_forums.taxonomy_forums_tid AS tid,
    comment_body.entity_id,
    comment_body.comment_body_value AS body
FROM
    field_data_taxonomy_forums AS taxonomy_forums
INNER JOIN
    field_data_body AS body
ON
    body.entity_id=taxonomy_forums.entity_id
INNER JOIN
    comment
ON
    comment.nid=body.entity_id
INNER JOIN
    field_data_comment_body AS comment_body
ON
    comment_body.entity_id=comment.cid
WHERE
    taxonomy_forums.taxonomy_forums_tid IN (9);
field\u data\u body
field\u data\u comment\u body
的结构是相同的,在
body\u value
列中有帖子的内容,在
entity\u id
列中有它们的唯一id

field\u data\u taxonomy\u forums
包含
entity\u id
列和
taxonomy\u forums\u tid
列(它们是论坛类别的id)。表
taxonomy\u term\u data
包含列
tid
(与
taxonomy\u forums\u tid
description
列(论坛类别的标题)相同)

因此,我正在寻找一个查询,它允许我选择帖子的主体(第一篇帖子和回复)以及指定
tid
s数组(即论坛类别的ID)的论坛描述,我将在
分类法\u术语\u数据表中手动查找这些内容

例如,我正在寻找一个查询,它允许我选择属于
tid
s
14567622862
的帖子以及相对
tid
描述

以下是
字段数据\u正文
表格的屏幕截图:

要查找对论坛id的引用,您必须添加“论坛”表(建立节点与论坛术语关系的表)的用法 还应该注意的是,论坛id不存在,它是一个分类id。 下面是一个通过分类id(tid)仅获取第一个消息主题的示例

请注意,论坛模块与评论核心模块配合使用,这意味着只有第一条主题消息存储在“field_data_body”中,所有回复都存储在“field_data_comment_body”表中


希望能有所帮助

我认为,我们最好将任务分为两个子任务:

  • 查找属于特定tid的帖子正文
  • 查找正文中属于特定tid的所有注释
  • 我们需要使用以下表格:

  • 字段\数据\分类法\论坛
  • 字段\数据\正文
  • 评论
  • 字段\数据\注释\正文
  • 数据库结构:

    找到尸体

    SELECT
        taxonomy_forums.taxonomy_forums_tid AS tid,
        body.entity_id,
        body.body_value AS body
    FROM
        field_data_taxonomy_forums AS taxonomy_forums
    INNER JOIN
        field_data_body AS body
    ON
        body.entity_id=taxonomy_forums.entity_id
    WHERE
        taxonomy_forums.taxonomy_forums_tid IN (9);
    
    查找机构的评论

    SELECT
        taxonomy_forums.taxonomy_forums_tid AS tid,
        body.entity_id,
        body.body_value AS body
    FROM
        field_data_taxonomy_forums AS taxonomy_forums
    INNER JOIN
        field_data_body AS body
    ON
        body.entity_id=taxonomy_forums.entity_id
    WHERE
        taxonomy_forums.taxonomy_forums_tid IN (9);
    
    这里我们需要注释表,它将
    字段数据\u正文
    字段数据\u注释\u正文
    统一起来

    SELECT
        taxonomy_forums.taxonomy_forums_tid AS tid,
        comment_body.entity_id,
        comment_body.comment_body_value AS body
    FROM
        field_data_taxonomy_forums AS taxonomy_forums
    INNER JOIN
        field_data_body AS body
    ON
        body.entity_id=taxonomy_forums.entity_id
    INNER JOIN
        comment
    ON
        comment.nid=body.entity_id
    INNER JOIN
        field_data_comment_body AS comment_body
    ON
        comment_body.entity_id=comment.cid
    WHERE
        taxonomy_forums.taxonomy_forums_tid IN (9);
    
    如果合并这两个查询,您将得到帖子和评论的列表


    就在你发帖时,我正在编辑问题以添加更多详细信息,因为我调查了一个位并添加了回复(加入字段\数据\注释\正文)?你不能直接加入“字段\数据\注释\正文”,你必须先加入“注释”表以获取正确的注释实体id。嗯,但我在
    字段数据注释主体
    表中看到一个
    实体id
    列“字段数据注释主体”表中的实体id是注释实体的“id”,而不是节点实体…要查找与特定注释相关的节点,需要在表“comment”中使用节点id(nid)完美。12小时内获得赏金奖。:-)