我试图让所有用户在profile_values中没有为fid = 13设置值或根本没有值。我猜这有一个简单的解决方案,但我只是没有看到它。任何帮助或正确的方向点非常感谢。MySQL查询 - 帮助选择
(在表用户和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
感谢所有令人难以置信的快速和合格的答案,欢呼!
这不起作用。看看我和安东尼的讨论 – zerkms 2010-02-08 23:44:11
实际上,这似乎与OR(pv.fid = 13 AND pv.value ='')结合起来......除非我忽略了某些东西 – Borgenk 2010-02-08 23:53:38
@Borgenk:为什么不是我的? ;-)你有没有尝试看看这个提议解释? ;-) – zerkms 2010-02-09 03:10:30