Я пишу модуль, который позволяет быстро добавлять пользователей только путем указания имени и фамилии (без адреса или имени пользователя). Эти пользователи похожи на «призрак», только для временного использования.
Перед добавлением пользовательского модуля необходимо проверить, существует ли в системе пользователь с таким же именем и фамилией, чтобы избежать создания нескольких пользователей-призраков с одинаковыми именами.
Другими словами - мне нужен 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, знают, о чем я прошу.