返回符合phpmyadmin数据库中一组特定条件的用户

时间:2014-05-09 18:42:53

标签: mysql phpmyadmin

您好我是mysql和phpmyadmin的新手,所以我大多只是从示例查询中学习,但我在尝试构建自己的简单查询时遇到了一些麻烦。

我想搜索我用于两个日期之间创建的所有用户的phpmyadmin数据库,这两个日期属于组名称中不包含“xyz”的组。我将从中提取两个表格:SITE_USERSITE_TargetGroup

SITE_USER中,相关列为namesurnameprimarygroupID(用户组的ID)和createdAT。在SITE_TargetGroup中,相关列为parentID(群组ID)和name。这里primarygroupIDparentID自然会是相同的数字(10),因为我正在搜索属于相同类型的组但在组名中不包含“xyz”的用户。对不起,如果这令人困惑。

到目前为止,我已经提出了这个问题:

SELECT u.ID, u.name, u.surname, u.email, tg.name AS group, u.createdAT AS date
FROM SITE_User u
    inner join SITE_TargetGroup tg
        on tg.userID = u.ID
WHERE u.primaryGroupID <> 10
    and u.createdAt BETWEEN ‘2014-04-09’ AND ‘2014-05-09
    and tg.name NOT LIKE ‘xyz’
GROUP BY dayofmonth(u.createdAT), month(u.createdAT)
ORDER BY dayofmonth(u.createdAT), month(u.createdAT)

但它返回错误:#1064 - 您的SQL语法中的'SQL(sg.name)FROM SITE_User u inner join SITE_TargetGroup tg on tg.userID = u'第1行附近有错误

有人可以建议如何改进/构建查询来执行此操作吗?提前致谢。

1 个答案:

答案 0 :(得分:0)

确定使用DDL加入表格,你需要在表格之间使用公共密钥。看起来像是

SITE_TargetGroup.parentID = SITE_USER.primarygroupID

所以你的查询应该是

SELECT
u.ID,
u.name, 
u.surname, 
u.email, 
tg.name, 
date(u.createdAt)
FROM SITE_User u
inner join SITE_TargetGroup tg
on tg.parentID = u.primarygroupID
WHERE u.primaryGroupID <> 10
and u.createdAt BETWEEN '2014-04-09' AND '2014-05-09'
and tg.name NOT LIKE 'xyz'