нравится ли вам этот запрос ?
От: Фукерман Ниоткуда  
Дата: 12.01.11 15:16
Оценка:
SELECT group_name,teacher,datetime 
FROM (
  SELECT datetime,groups.name AS group_name,users.name AS teacher 
  FROM study_process,students,groups,users
  WHERE groups.id = students.group
  AND students.id = study_process.student_id
  AND users.id = groups.owner
  ORDER BY groups.name,datetime DESC
) AS tmp
GROUP BY group_name
Re: нравится ли вам этот запрос ?
От: Sinix  
Дата: 12.01.11 15:46
Оценка:
Здравствуйте, Фукерман, Вы писали:

WITH Summary
AS
{
  SELECT SP.datetime, G.name AS group_name, U.name AS teacher 
    FROM study_process SP
      INNER JOIN students S ON SP.student_id = S.id
      INNER JOIN groups G ON S.group = G.id  -- Наверное, group_id? Определитесь со стилем именования.
      INNER JOIN users U ON U.id = G.owner  -- owner_user_id? 
}
SELECT DISTINCT S.group_name, S.teacher, S.datetime -- ??? Что получить-то надо?
  FROM Summary S 
  ORDER BY S.group_name, S.datetime DESC
Re[2]: нравится ли вам этот запрос ?
От: Фукерман Ниоткуда  
Дата: 12.01.11 16:07
Оценка: :)
а без join-ов нельзя ?
не понимаю я их
Re[3]: нравится ли вам этот запрос ?
От: ZAMUNDA Земля для жалоб и предложений
Дата: 12.01.11 17:16
Оценка:
Здравствуйте, Фукерман, Вы писали:

Ф>а без join-ов нельзя ?

Можно! Есть ещё подзапросы и IN, но их понять порой труднее. :-)

Ф>не понимаю я их

Чо нипонимаешь-то? Давай растолкуем, для этого ж собрались вроде... Я вот ложку с вилкой когдато-то не понимал, но научился же и теперь без неё никак.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Re: нравится ли вам этот запрос ?
От: avpavlov  
Дата: 12.01.11 17:33
Оценка: +2
Здравствуйте, Фукерман, Вы писали:

1) вложенный запрос не нужен
2) ордер бай тоже не нужен
3) надеюсь, автор идеи, позволяющей в МайСКЛ выводить в селекте поля, не указанные в группировке, будет гореть в аду.
Re[2]: нравится ли вам этот запрос ?
От: Фукерман Ниоткуда  
Дата: 12.01.11 18:00
Оценка:
Здравствуйте, avpavlov, Вы писали:

A>Здравствуйте, Фукерман, Вы писали:


A>1) вложенный запрос не нужен

A>2) ордер бай тоже не нужен
A>3) надеюсь, автор идеи, позволяющей в МайСКЛ выводить в селекте поля, не указанные в группировке, будет гореть в аду.

1 — вложенный запрос потому, что мне сначала нужно отсортировать, а потом сгруппировать, а синтаксис этого сделать не позволяет
2 — как же не нужен, когда мне по нему сортировать надо ?
3 — гм, гм ...
Re[3]: нравится ли вам этот запрос ?
От: avpavlov  
Дата: 12.01.11 19:16
Оценка: 2 (1)
A>>1) вложенный запрос не нужен
A>>2) ордер бай тоже не нужен
A>>3) надеюсь, автор идеи, позволяющей в МайСКЛ выводить в селекте поля, не указанные в группировке, будет гореть в аду.

Ф>1 — вложенный запрос потому, что мне сначала нужно отсортировать, а потом сгруппировать, а синтаксис этого сделать не позволяет


При группировке сервер не обязан сохранять какой-либо порядок строк (если после группировки не указан ордер бай). Если тебе что-то там выводится сортированным, то это вполне может быть особенностью конкретного плана выполнения запроса или особенностью конкретной версии МайСКЛ.

Ф>2 — как же не нужен, когда мне по нему сортировать надо ?


не нужен, потому что он гарантированно действует только на вложенный запрос. А воздействие сортировки на внешний запрос — это просто сайд-эффект, которыйй может исчезнуть в любое время.
Re[3]: нравится ли вам этот запрос ?
От: avpavlov  
Дата: 12.01.11 19:20
Оценка:
Ф>3 — гм, гм ...

вот так д.б. чтобы не зависеть от сайд-эффектов и особенностей МайСКЛ


SELECT max(datetime),groups.name AS group_name,max(users.name) AS teacher 
  FROM study_process,students,groups,users
  WHERE groups.id = students.group
  AND students.id = study_process.student_id
  AND users.id = groups.owner
group by groups.name
  ORDER BY groups.name
Re: нравится ли вам этот запрос ?
От: MasterZiv СССР  
Дата: 13.01.11 10:38
Оценка:
On 12.01.2011 18:16, Фукерман wrote:

> нравится ли вам этот запрос ? <message/4113767.aspx> Оценить


Нет. Подзапрос лишний.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: нравится ли вам этот запрос ?
От: MasterZiv СССР  
Дата: 13.01.11 10:44
Оценка:
On 12.01.2011 21:00, Фукерман wrote:

> 1 — вложенный запрос потому, что мне сначала нужно отсортировать, а потом

> сгруппировать, а синтаксис этого сделать не позволяет

Предварительная сортировка перед группировкой никак не меняет
результат группировки.

И в SQL вообще нет "сначала" и "потом". Это язык запросов, а не
язык программирования.

> 2 — как же не нужен, когда мне по нему сортировать надо ?


Если уберёшь сортировку, подзапрос будет не нужен. Если нужна
сортировка, её можно и в основной запрос вставить. Подзапрос для этого
не нужен.

> 3 — гм, гм ...


3-го я сразу не заметил... Тебе вообще что нужно-то ?
GROUP BY без единой агрегирующей функции -- это неправильно.
Надо DISTINCT использовать.

Плюс поля teacher, datetime у тебя будут содержать всё, что
угодно. Что твоя СУБД это позволяет делать -- это ОЧЕНЬ ПЛОХО,
это я согласен. СУБД какая ?
Posted via RSDN NNTP Server 2.1 beta
Re[4]: нравится ли вам этот запрос ?
От: avpavlov  
Дата: 13.01.11 12:08
Оценка:
MZ>Плюс поля teacher, datetime у тебя будут содержать всё, что
MZ>угодно. Что твоя СУБД это позволяет делать -- это ОЧЕНЬ ПЛОХО,
MZ>это я согласен. СУБД какая ?

200% это МайСКЛ (я в других этого не встречал). Руки бы оторвал за такие "фичи". Случайно пропускаешь поле в груп бай (но оно есть в селекте) и всё молчком работает с подставлением рандомного значения

На тестовых данных по закону подлости оно (естественно) работает как надо, всплывает уже потом в продакшн. Всплывает (тоже естественно) рандомным образом — happy debugging!
Re: нравится ли вам этот запрос ?
От: Lloyd Россия  
Дата: 13.01.11 12:08
Оценка: :)
Здравствуйте, Фукерман, Вы писали:

нет
Re[5]: нравится ли вам этот запрос ?
От: Sергей Беларусь  
Дата: 13.01.11 15:31
Оценка:
Здравствуйте, avpavlov, Вы писали:

A>200% это МайСКЛ (я в других этого не встречал). Руки бы оторвал за такие "фичи". Случайно пропускаешь поле в груп бай (но оно есть в селекте) и всё молчком работает с подставлением рандомного значения


А мне этот запрос очень напоминает VFP. Ставлю $10. Там в версиях до 7й включительно та же проблема с Group by.
Re[6]: нравится ли вам этот запрос ?
От: avpavlov  
Дата: 13.01.11 15:50
Оценка:
S>А мне этот запрос очень напоминает VFP. Ставлю $10. Там в версиях до 7й включительно та же проблема с Group by.

Ну я как-то с реликвиями бронзового века не очень знаком
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.