SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 08.12.2009 13:42:25

Crystall
Участник
Зарегистрирован: 08.12.2009
Сообщений: 7

SELECT (X) значений, (Y) из которых не должны повторяться.

Здравствуйте,

Для начала приведу код моего запроса:

SELECT pLogData.TimeVal, pLogData.HozOrgan, pList.Name, pList.FirstName, pList.MidName, pList.TabNumber, AccessPoint.Name as "AccessPointName", Events.Contents + DBO.AddState(tpRzdIndex) as 'Contents', pLogData.Mode, pLogData.DoorIndex, pPost.Name as "PostName", pDivision.Name as "DivisionName" FROM AccessPoint, pLogData
LEFT JOIN pList ON (pLogData.HozOrgan = pList.ID)
LEFT JOIN Events ON (pLogData.Event = Events.Event)
LEFT JOIN pPost ON (pList.pPost = pPost.ID)
LEFT JOIN pDivision ON (pList.Section = pDivision.ID)
WHERE
pLogData.DoorIndex = AccessPoint.GIndex AND
tpIndex IN (8, 12) AND
pLogData.Mode = 1

ORDER BY pLogData.DoorIndex, pLogData.TimeVal

Всё это в совокупности выдает мне некую табличку, в которой могут повторяться, а могут и нет, следующие столбцы:

pList.Name, pList.FirstName, pList.MidName

А теперь вопрос: как можно отсортировать вывод моего запроса так, чтобы в нём не было строк с одинаковыми значениями pList.Name, pList.FirstName, pList.MidName?
То есть, если, например, у меня уже есть Иванов Иван Иванович, независимо от того, какие значения имели остальные поля, как удалить повторяющиеся значения?

P.S. Поисками различными пользовался, но это ни к чему не привело...
Заранее спасибо!

Неактивен

 

#2 08.12.2009 13:56:14

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SELECT (X) значений, (Y) из которых не должны повторяться.

GROUP BY pList.Name, pList.FirstName, pList.MidName

Неактивен

 

#3 08.12.2009 14:02:19

Crystall
Участник
Зарегистрирован: 08.12.2009
Сообщений: 7

Re: SELECT (X) значений, (Y) из которых не должны повторяться.

Спасибо за столь быстрый ответ, но, к сожалению, это не помогло решить поставленную задачу...
Может быть есть ещё какие-нибудь варианты?

Неактивен

 

#4 08.12.2009 14:08:48

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SELECT (X) значений, (Y) из которых не должны повторяться.

А почему не помогло? В чем именно возникла проблема?

Неактивен

 

#5 08.12.2009 14:21:51

Crystall
Участник
Зарегистрирован: 08.12.2009
Сообщений: 7

Re: SELECT (X) значений, (Y) из которых не должны повторяться.

Весьма благодарен за вашу заинтересованность.

Вы знаете, просто ничего не поменялось, повторяющиеся записи остались на своих местах...

P.S. Немного поясню:

Вывод я делаю таким образом - пять столбцов, первый из их - имя (pList.Name), второй - фамилия (pList.FirstName), третий - отчество (pList.MidName), четвёртый - время действия (pLogData.TimeVal), а пятый - идентификатор действия (pLogData.Mode).

К примеру, если сейчас запрос выдаёт:

Иван Иванов Иванович 13:49 68
Иван Иванов Иванович 14:01 16
Иван Иванов Иванович 15:22 47

То должен он выдавать только первое вхождение данного имени, фамилии и отчества:

Иван Иванов Иванович 13:49 68

Неактивен

 

#6 08.12.2009 14:44:50

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: SELECT (X) значений, (Y) из которых не должны повторяться.

Повторяющиеся записи не должны были остаться на местах smile

test >select * from (
    -> select 'иванов' f, 'иван' i, 'иванович' o, '13:49' v, '68' m union
    -> select 'иванов' f, 'иван' i, 'иванович' o, '14:01' v, '16' union
    -> select 'иванов' f, 'иван' i, 'иванович' o, '15:22' v, '47') xx group by f,i,o;
+--------+------+----------+-------+----+
| f      | i    | o        | v     | m  |
+--------+------+----------+-------+----+
| иванов | иван | иванович | 13:49 | 68 |
+--------+------+----------+-------+----+
1 row in set (0.00 sec)


Видимо вы неправильно написали запрос. Приведите его полностью.

Неактивен

 

#7 08.12.2009 19:37:50

Crystall
Участник
Зарегистрирован: 08.12.2009
Сообщений: 7

Re: SELECT (X) значений, (Y) из которых не должны повторяться.

Извиняюсь за дезинформацию, действительно, всё отлично работает.
Спасибо большое за оказанную помощь.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson