Drupal:MySQL选择属于特定论坛的所有帖子
我需要在Drupal中选择一系列特定类别(论坛)中发布的所有消息(第一篇帖子和回复) 第一篇帖子存储在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
字段数据\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
s14567622862
的帖子以及相对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小时内获得赏金奖。:-)