Drupal 在MySQL中跨多个表选择数据
好的,我试图以一个视图结束,该视图从运行在MySQL上的Drupal实例返回一些字段。问题在于,这些信息分布在三个表中: 表1(关键字搜索表):包含以下字段: id,关键字,dst 示例数据: 1、‘鸡’、‘约图斯/弗雷德’ 2、“盒子”、“服务/修补材料” 表2(url\u别名):包含以下字段: pid、src、dst 示例数据: 45,‘节点/22’,‘Aboutus/fred’ 46,“节点/36”,“修补材料” 表3(节点修订):包含以下字段: nid、标题、摘要 示例数据: 22.“关于弗雷德——我们的总统”,“弗雷德是个很棒的人,已经当了4年总统……” 36,“修补你的甲板”,“修补你的甲板应该使用带刺铁丝网…” 我试图以这样的方式结束: 关键字、目的地url、标题、摘要文本 基于上述数据的输出示例:Drupal 在MySQL中跨多个表选择数据,drupal,mysql,Drupal,Mysql,好的,我试图以一个视图结束,该视图从运行在MySQL上的Drupal实例返回一些字段。问题在于,这些信息分布在三个表中: 表1(关键字搜索表):包含以下字段: id,关键字,dst 示例数据: 1、‘鸡’、‘约图斯/弗雷德’ 2、“盒子”、“服务/修补材料” 表2(url\u别名):包含以下字段: pid、src、dst 示例数据: 45,‘节点/22’,‘Aboutus/fred’ 46,“节点/36”,“修补材料” 表3(节点修订):包含以下字段: nid、标题、摘要 示例数据: 22.“关
我猜我需要做一些内外连接和左连接…我不擅长写这些东西。有什么想法吗?你无法获得这些数据,因为url\u别名不包含仅nid的pid。可以在不同表中的类似字段上进行连接。例如,我将从关键字搜索表和节点\u revisions.title中选择数据 SELECT keyword_search_table.nid, keyword_search_table.keyword, node_revisions.title, node_revisions.teaser FROM keyword_search_table INNER JOIN ON keyword_search_table.nid = node_revisions.nid; 从关键字搜索表内部联接中选择关键字搜索表.nid、关键字搜索表.keyword、节点修订版.title、节点修订版.triser(关键字搜索表.nid=节点修订版.nid); 如果url\u别名具有nid(或者您可以确保nid=pid),则您的查询应该如下所示: SELECT keyword_search_table.nid, keyword_search_table.keyword, node_revisions.title, node_revisions.teaser, url_alias.pid FROM keyword_search_table INNER JOIN ON keyword_search_table.nid = node_revisions.nid INNER JOIN ON url_alias.pid = node_revisions.nid; 从关键字搜索表上的关键字搜索表内部联接中选择关键字搜索表.nid、关键字搜索表.keyword、节点修订版.title、节点修订版.trister、url修订版.pid;从关键字搜索表上的关键字搜索表内部联接中选择关键字搜索表.nid=节点修订版.nid=url修订版.pid=节点修订版.nid内部联接;
这对我来说完全有意义。谢谢Ran!但我知道的一件事是keyword\u search\u table ID列与PID或NID无关。它是独立的。该表中的每个记录都有一个URL\u别名,与URL\u Alias表中的URL别名相匹配。如果keyword\u search\u table.ID不是NID,则必须查找其他链接数据,即URL\u Alias。查询应该像这样选择关键字搜索表。nid,关键字搜索表。关键字,节点修订。title,节点修订。trister,url搜索表上的url\u alias.pid内部连接。url\u alias=url\u alias.url\u alias内部连接url\u alias.pid=node\u修订。nid;我不想听起来很傻,但我需要从某个地方来的吗?我是这里的哑巴,我忘了,我刚刚编辑了包含FROMRan的查询!非常感谢!我能够获得我所需要的数据。我想我对内部连接有点困惑。