我发现,与左联接相比,如果我使用用户和用户名点的内部联接,则查询性能要好得多。
目前,新用户注册时有0个用户点,我将用规则将其更改为1点。
为了向所有0点的用户添加1点,我正在考虑使用一个视图和视图批量操作。
为了达到“要点”:我不能过滤视图以显示0点,因为用户在userpoints表中没有记录。这是视图试图生成的SQL:
SELECT ..
FROM
{users} users
LEFT JOIN {userpoints_total} userpoints_total ON users.uid = userpoints_total.uid
WHERE (userpoints_total.points = '0') 我认为不可能生成带有视图的查询来查找相关表中没有记录的用户?还是有诡计?
发布于 2012-07-28 13:27:23
有一个窍门:您的条件必须是… WHERE userpoints_total.points IS NULL --对于所有尚未在userpoints_total中有行的用户来说,这将是正确的。Afaik您可以通过视图接口轻松地添加该条件。
为了安全起见,您还可以使用:WHERE userpoints_total.points=0 OR userpoints_total.points IS NULL。
https://drupal.stackexchange.com/questions/37915
复制相似问题