Хорошо, я попытался посмотреть все более StackOverflow, и самое близкое решение, которое я нашел это: 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
Я хочу, чтобы получить UID из тех, что 2 значения на в то же время. Например, я хочу получить 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 значения.
Кто-нибудь знает решение?
Это один сделал это работает для меня. Мой db более сложный, чем этот, но я упростил проблему, и мне нужно «перевести» ее в API DB Drupal, возможно, поэтому использование «having» не работает, или, возможно, потому, что я присоединился к 5 другим таблицам ... I не знаю, моя первая мысль заключалась в том, что «группа по» выводит только 1 строку, поэтому счет всегда будет 1, но я не знаю ... –