Как я могу найти строки в MySQL, где имя имеет столбец = 1, но не существует другой строки с тем же именем, но не имеет столбец = 2?

0

Например:

name | age
Joe     21
Ben     21
Joe     26

Мне нужны имена, где возраст равен 21, но не 26. В этом примере Бен должен быть единственным результатом. Я даже не знаю, с чего начать. Может ли кто-нибудь объяснить это? Благодарю.

  • 1
    Подсказка: WHERE name NOT IN (...) Как вы думаете, что должно быть внутри (...) ?
  • 1
    StackOverflow не является бесплатным сервисом кодирования. SO ожидает, что вы сначала попытаетесь решить свою проблему . Пожалуйста, обновите ваш вопрос, чтобы показать, что вы уже пробовали в минимальном воспроизводимом примере . Для получения дополнительной информации, пожалуйста, смотрите Как спросить , и принять тур :)
Показать ещё 4 комментария
Теги:

2 ответа

0

попробуйте это, используя NOT EXISTS

select * from table t
where age = 21
and not exists (
select 1
from table x
where x.name = t.name
where age <> 21
)
0

Если вам просто нужны имена, вы можете сделать:

выбрать имя

from t
group by name
having sum( age = 21 ) > 0 and
       sum( age = 26) = 0;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню