API,显示两次结果,但顺序不正确

时间:2016-05-20 15:58:28

标签: api drupal

我第一次创建API以将数据导入swift App(iOS) 但我得到了我的所有结果两次,结果不知道归属或错误的顺序...

我认为这是因为我有几张桌子,我来自。

一个例子:

$ sql =" SELECT * FROM node,field_data_body&#34 ;; // Drupal表

我听说过WHERE声明,但没有任何线索。

3 个答案:

答案 0 :(得分:1)

当您从多个表中进行选择时,您所做的是implicit cross JOIN。不使用WHERE子句中的条件,就可以获得这些表的所有组合。

如果表是完全独立/独立的,则可以为每个表创建2个不同的SELECT查询。

否则,如果它们之间存在关系,则应选择一种最适合您目标的JOIN类型,并使用WHERE条件在查询中描述其关系。

让我们假设节点表有" id" column和field_data_body有" node_id"柱。然后查询可以是以下内容:

SELECT * FROM node 
LEFT JOIN field_data_body ON node.id = field_data_body.node_id

或相同的

SELECT * FROM node 
LEFT JOIN field_data_body WHERE node.id = field_data_body.node_id

Here是SQL JOIN的良好直观表示。

答案 1 :(得分:1)

据我所知,建议使用Entity API查询Drupal中的数据,这是一个文档,https://www.drupal.org/node/1343708

您还可以使用View模块设置查询,并将输出设置为JSON。

第三个选项可能是使用https://www.drupal.org/project/rest_server模块。

答案 2 :(得分:0)

表格nodefield_data_body可能包含相同的数据吗?如果不明确的话,你的selecte * from声明会包含所有内容。