好的,我正试图以一个视图结束,该视图从在MySQL上运行的Drupal实例返回一些字段。问题是这些信息分散在三个表格中:
表1(keyword_search_table):包含以下字段:
id,keyword,dst 示例数据: 1,'鸡','aboutus / fred' 2,'boxes','services / patching_stuff'
表2(url_alias):包含以下字段:
pid,src,dst 示例数据: 45,'node / 22','aboustus / fred' 46,'node / 36','patching_stuff'
表3(node_revisions):包含以下字段:
nid,title,teaser 示例数据:
22,'关于弗雷德 - 我们的总统','弗雷德是一个伟大的家伙,已经长达4年...... 36,“修补你的甲板”,“修补你的甲板应该用铁丝网完成......”我试图最终得到这个:
keyword,destination_url,title,teaser_text
基于上述数据的示例输出:
我猜我需要做一些内外连接......我不善于写这些东西。有什么想法吗?
答案 0 :(得分:0)
您无法获取该数据,因为url_alias不包含仅nid的pid。 JOIN可以在不同表格中的相似字段上进行。例如,我将从keyword_search_table和node_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;
如果url_alias有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;