嘿,我有一些sql语句的问题。这是数据库方案:(http://docs.elgg.org/wiki/DatabaseSchema),只有“实体”和“关系”表很重要!我要做的是,选择对象类型为“group”的所有guid,但此对象不是其他组的子对象。这意味着guid_two列中的guid与关系表中没有记录。我的第一个想法是:
SELECT * FROM elgg_entities e
JOIN elgg_entity_relationships r ON e.guid = r.guid_one
WHERE e.type='group' AND NOT EXISTS (
SELECT *
FROM elgg_entity_relationships s
WHERE e.guid = s.guid_two
AND s.relationship='subgroup')
但它不起作用。还有成员等表中的其他关系。我希望有人可以帮助我,因为我现在真的很沮丧。
编辑:这个SQL查询在MyPHP中工作,在elgg中我试图将其转换为“elgg-ich”:
$options = array(
'type' => 'group',
'joins' => array("JOIN elgg_entity_relationships r ON e.guid = r.guid_one"),
'wheres' => array("e.type='group' AND not exists (SELECT e.guid
FROM elgg_entity_relationships s
where e.guid = s.guid_two
AND s.relationship = 'subgroup'
)"),
'limit' => $limit,
'full_view' => FALSE,
);
$content = elgg_list_entities($options);
=>解决方案是区分大小写,而不是第6行中的小数。
答案 0 :(得分:0)
如编辑问题所述;
解决方案是区分大小写,而不是在线 6。