【发布时间】:2010-07-02 13:41:59
【问题描述】:
我正在编写模块,它只允许通过提供名字和姓氏(没有电子邮件地址或用户名)来快速添加用户。那些用户就像'幽灵',只是为了临时使用。 在添加用户模块之前需要检查系统中是否已经存在同名和姓氏的用户,以避免创建多个具有相同个人姓名的幽灵用户。 换句话说 - 我需要一个 sql 查询来按姓氏和名字过滤用户。 到目前为止,我能够产生这样的查询:
$sql = "SELECT DISTINCT u.uid AS uid FROM users u INNER JOIN profile_values pv ON u.uid = pv.uid INNER JOIN profile_fields pf ON pv.fid = pf.fid "
."WHERE pf.fid = 2 AND pv.value = '%s'";
$uid = db_fetch_object(db_query("$sql", $ln))->uid;
此查询不够好,因为它仅通过匹配姓氏来查找用户。我不是 sql 专家,但我不知道如何连接表以缩小结果,以便匹配名字和姓氏: 像这样的
WHERE pf.fid = 2 AND pv.value = 'LASTNAME' AND pf.fid = 1 AND pv.value = 'FIRSTNAME';
在我的 profile_fields 表中,我有: fid = 2 -> 姓氏 fid = 1 -> 名字
最后一个 WHERE 子句将不起作用。我希望那些熟悉 Drupal 系统中用户-个人资料表关系的人知道我的要求。
【问题讨论】: