与SQL语句斗争(不存在)

时间:2012-06-19 09:10:29

标签: sql elgg not-exists

嘿,我有一些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行中的小数。

1 个答案:

答案 0 :(得分:0)

如编辑问题所述;

  

解决方案是区分大小写,而不是在线   6。