У меня есть этот запрос, который работает отлично:SQL: Не удается получить уникальные имена/пользователей
SELECT
u.id
, u.mobile
, u.name
, (NOW() - u.authenticationTime) AS authenticateTimeDifference
, u.IP
, c.providerid
, c.requestid
, c.status
, u.port
FROM contacts c
LEFT JOIN users u ON u.id =
IF (
c.providerid = 2
, c.requestid
, c.providerid
) WHERE (
c.providerid = 2
AND c.status = 1
)
OR c.requestid = 2
ORDER BY authenticateTimeDifference
Теперь я хотел только выбрать DISTINCT u.name
поля (или уникальных пользователей), поэтому я изменил u.name
к DISTINCT(u.name)
, но я Я получаю сообщение об ошибке:
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'DISTINCT(u.name) ,
(NOW() - u.authenticationTime) AS au' at line 4
Я также попытался добавить GROUP BY u.name
, но все еще не везение.
Может ли кто-нибудь сказать, как выбрать уникальные имена/пользователей по вышеуказанному запросу?
Спасибо за помощь
Для каждого сгруппированного значения 'name', какие значения вы хотите выбрать для других столбцов' id', 'mobile' и т. Д. ... ?? добавьте некоторые примеры данных и ожидаемый результат. –
Кроме того, где вы обнаружили, что 'unique' определяется в документации? –
Что это за 'UNIQUE()'? Задача 'group by' будет возвращать все уникальные имена. –