Я пытаюсь получить всех пользователей, для которых не задано значение для fid = 13 или нет значения в profile_values. Я предполагаю, что у этого есть простое решение, но я просто не вижу этого. Любая помощь или точка в правильном направлении очень ценится.
(Таблицы users и profile_values оба из Drupal.)
Упрощенные значения:
uid name fid value
1 user1 1 foo
1 user1 2 foo
2 user2 12
2 user2 13 1265662514
3 user3 NULL NULL
4 user4 NULL NULL
Что я пытался:
SELECT u.uid, u.name, pv.fid, pv.value
FROM users u
LEFT JOIN profile_values pv ON pv.uid = u.uid
WHERE u.status != 0
AND (pv.fid != 13 OR pv.fid IS NULL)
GROUP BY u.uid
uid name fid value
1 user1 1 foo
2 user2 12 foo
3 user3 NULL NULL
4 user4 NULL NULL
Моя проблема - user2, которого там быть не должно, так как он имеет значение в fid = 13
Спасибо за все невероятные быстрые и качественные ответы, ура!