Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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中跨多个表选择数据_Drupal_Mysql - Fatal编程技术网

Drupal 在MySQL中跨多个表选择数据

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.“关

好的,我试图以一个视图结束,该视图从运行在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、标题、摘要文本

基于上述数据的输出示例:

  • 鸡,aboutus/fred,AboutFred-我们的总统,fred是一个很棒的人,已经当了4年主席
  • 盒子,服务/修补东西,修补你的甲板,修补你的甲板应该用铁丝网

  • 我猜我需要做一些内外连接和左连接…我不擅长写这些东西。有什么想法吗?

    你无法获得这些数据,因为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的查询!非常感谢!我能够获得我所需要的数据。我想我对内部连接有点困惑。