Конференция "Базы" » group by по многим полям или агрегаты
 
  • Petr V. Abramov © (14.04.08 23:35) [20]

    > jack128_   (14.04.08 09:52) [10]

    какая разница, PK ID или нет.
    главное, однозначно ли соотв. ID CAPTION`у
  • kaif © (15.04.08 03:28) [21]
    Это разные запросы и в общем случае они дадут разные результаты.

    Если они дают одинаковые результаты, то это лишь означает, что база данных плохо нормализована.

    Вместо этой одной таблицы должно быть две:
    TABLE1 (ID, CAPTION)
    и
    TABLE2(ID, TABLE1_ID, MYPARAM)
    с отношением один ко многим.

    И правильный запрос выглядел бы так:

    SELECT T1.ID, T1.CAPTION, SUM(T2.MYPARAM)
    FROM TABLE1 T1, TABLE2 T2
    WHERE T1.ID = T2.TABLE1_ID
    GROUP BY T1.ID, T1.CAPTION



    или так:

    SELECT T1.CAPTION, SUM(T2.MYPARAM)
    FROM TABLE1 T1, TABLE2 T2
    WHERE T1.ID = T2.TABLE1_ID
    GROUP BY T1.CAPTION



    Причем в первой таблице я бы предусмотрел кроме  CONSTRAINT UNIQUE(CAPTION), а во второй - CONSTRAINT FOREIGN KEY (TABLE1_ID) REFERENCES TABLE1(ID)
 
Конференция "Базы" » group by по многим полям или агрегаты
Есть новые Нет новых   [134433   +22][b:0][p:0.001]