好吧,我想看看各地计算器,我发现的最接近的解决方案是这样的: mysql AND clause on same column multiple timesMYSQL来自同一列中比较值
但我不能用语句和“具有”语法将无法工作,因为由...组成。必须有一个简单的解决方案。
的2个表看起来像这样(简化):
用户:
uid name
1 person 1
2 person 2
3 person 3
类别:
uid value
1 actor
1 musician
2 actor
3 dancer
4 musician
4 dancer
我想那些2点的值在的UID同时。例如,我想获得演员和音乐家的UID。不只是一个价值,但他们都必须要求!
首先我尝试这样做:
SELECT users.uid, users.name
FROM
users
LEFT OUTER JOIN categories ON users.uid = categories.uid
WHERE (categories.value = 'actor' AND categories.value = 'musician')
GROUP BY u.uid;
这当然不行,因为一行不能有2倍的值。
有谁知道解决方案吗?
这一个使得它为我工作。我的数据库比这个更复杂,但我简化了这个问题,而且我必须将它“翻译”到Drupal的数据库API,或许这就是为什么使用'有'没有用,或者因为我加入了5个其他表...我不知道,我的第一个想法是“group by”只有结果1行,所以count总是1,但我不知道... –