Запрос уникальных записей - PullRequest
2 голосов
/ 22 мая 2011

Следующий запрос показывает одного и того же пользователя несколько раз, как сделать его уникальным?

$query = 'SELECT   a.connection_id, a.connect_from, a.connect_to,
                   b.userid, b.thumb, c.name, d.user_id, d.field_id,
                   d.value as bday, e.creator, e.id as videoprofile,
                   DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(),d.value)), "%Y")+0 AS age
          FROM     `#__community_connection` AS a 
                   LEFT JOIN `#__community_users` AS b
                       ON a.connect_to = b.userid
                   LEFT JOIN `#__users` AS c ON a.connect_to = c.id
                   LEFT JOIN `#__community_fields_values` AS d
                       ON a.connect_to = d.user_id
                   LEFT JOIN `#__community_videos` AS e ON a.connect_to = e.creator
          WHERE    a.connect_from = "' . $uid .'" AND d.field_id = "3"
          ORDER BY DAYOFMONTH( bday ) ASC';

Ответы [ 2 ]

2 голосов
/ 22 мая 2011

Добавьте DISTINCT после вашего SELECT, чтобы получить только уникальные строки.Поэтому измените первую строку вашего кода следующим образом:

$query = 'SELECT DISTINCT  a.connection_id, a.connect_from, a.connect_to, ...
[The rest of your query follows here.]
0 голосов
/ 22 мая 2011

Не совсем уверен, что вы спрашиваете, но я предполагаю, что вы хотите уникальный метод идентификации для ваших пользователей?

Ну, в PHP вы можете хэшировать их IP-адреса и использовать их в качестве своих идентификаторов, однако они содержат цифры и буквы, так что это сделает его уникальным, я полагаю:)

Вот как это будет выглядеть

.md5($data['post_ip']);

это будет выглядеть по-разному для всех, например, мое выглядит следующим образом e36e263f082188a317f89e0dfef766ed

надеюсь, это то, что вы ищете :)

...