我想要的是获取所有没有设置fid = 13或者在profile_values中根本没有值的用户。我猜这应该有一个简单的解决方案,但是我就是看不到。非常感谢任何帮助或指点方向。
(表users和profile_values都来自Drupal。)
简化后的内容:
(表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
我的问题是用户2,它不应该存在,因为它在fid = 13中有一个值。
感谢所有快速而专业的回答,干杯!