SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 27.09.2010 14:42:59

Enxiro
Участник
Зарегистрирован: 27.09.2010
Сообщений: 4

Вывод строк уникальных по одному из полей

Здравствуйте. Может вопрос и ламерский совсем, но решить пока что не могу.
1) есть таблица "spec" поля spec.id и spec.name. В ней хранятся названия медицинских специальностей.
2) есть таблица lpu (лечебно-проф учреждения). поля аналогичные - айди и название
3) есть таблица person - список врачей. поля - person_id, name, spec_id, lpu_id

Задача:
вывести без повторений все специальности которые представлены в данной ЛПУ.

предположим что я где то получил код нужной мне ЛПУ в $lpu_id
как делаю:
$query_spec = "SELECT spec.id, spec.name as spec_name FROM spec INNER JOIN person ON spec.id = person.spec_id WHERE person.lpu_id = $lpu_id";

Но при таком запросе если например в ЛПУ 2 человека с одной специальностью, то результат выведет 2 раза название специальности.
т.е. в ЛПУ допустим
аллерголог - Ирина
аллерголог - Анна
(в результате моего запроса 2 раза Аллерголог выведется).

Пробовал ставить DISTINCT к spec.name - не помогает.

Неактивен

 

#2 27.09.2010 14:46:42

Enxiro
Участник
Зарегистрирован: 27.09.2010
Сообщений: 4

Re: Вывод строк уникальных по одному из полей

всё. решил вопрос. просто не дописал. я помимо spec.name выводил ещё person.name, т.е.

$query_spec = "SELECT DISTINCT spec.id, spec.name as spec_name, person.name as person_name FROM spec INNER JOIN person ON spec.id = person.spec_id WHERE person.lpu_id = $lpu_id";

убрал вывод записи из присоединяемой таблицы - заработало.
т.е. я так понял что DISTINCT работает не к конкретной ячейки, а к выводимой строке?

Неактивен

 

#3 27.09.2010 18:17:00

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Вывод строк уникальных по одному из полей

Да, DISTINCT влияет на всю выборку целиком.

Неактивен

 

Board footer

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