У меня стоит задача: выбрать из таблицы с актерами всех актеров, которые не имеют однофамильцев. Я делаю это следующим запросом:
SELECT Actors.surname FROM `Actors` GROUP BY Actors.surname HAVING COUNT(Actors.surname) = 1 order by Actors.surname
Соответственно я успешно получаю результат без дубликатов:
Но! Мне нужно использовать функцию CONCAT что бы получить имя актера полностью, вместе с фамилией и опять же избежать всех однофамильцев. И вот это сделать у меня не выходит никак. Можете подсказать мне с этим? Спасибо
Мне нужно использовать функцию CONCAT что бы получить имя актера полностью, вместе с фамилией и опять же избежать всех однофамильцев.
SELECT MAX(CONCAT(firsname, ' ', surname)) fullname
FROM actors
GROUP BY surname
HAVING COUNT(surname) = 1
-- ORDER BY surname
Если only_full_group_by отключен, обёртку MAX() можно убрать.
Например, так:
SELECT * FROM `Actors` where Actors.surname in (
SELECT Actors.surname FROM `Actors` GROUP BY Actors.surname
HAVING COUNT(Actors.surname) = 1
)
order by Actors.surname
Продвижение своими сайтами как стратегия роста и независимости