Сортировка mysql left join

L
На сайте с 01.11.2007
Offline
52
1372

Подскажите пожалуйста.

Есть 3 таблицы

1. Таблица - n

id name

1 вася

2 Петя

3 Коля

4 ваня

2.таблица - t

id phone

1 nokia

2 samsung

3 htc

4 apple

3. Таблица - tn

id id_n id_t

1 1 1

2 1 2

3 1 4

4 2 3

5 2 1

6 4 1

Делаем запрос

SELECT

N.*,

T.phone

FROM

?_n N

LEFT OUTER JOIN

?_tn TN ON TN.id_n = N.id

LEFT OUTER JOIN

?_t T ON T.id = TN.id_t

GROUP BY N.id

ORDER BY N.name

и получаем

1 Вася apple

2 Петя Nokia

3 Коля -

4 Ваня nokia

Как сделать так, что бы была возможность сортировки по таблице TN? Хотелось бы видеть

1 Вася nokia

2 Петя htc

3 Коля -

4 Ваня nokia

S5
На сайте с 04.01.2010
Offline
77
#1

T.*

ORDER BY N.id, T.phone

L
На сайте с 01.11.2007
Offline
52
#2
sg552:
T.*
ORDER BY N.id, T.phone

при такой выборке сортировка произодет в алфавитном порядке по названию телефона.

а мне необходима первая запись с наименьшим id по таблице TN

виноват, немного условие не так написал. поправил.

siv1987
На сайте с 02.04.2009
Offline
427
#3

ORDER BY tn.id_t ASC

L
На сайте с 01.11.2007
Offline
52
#4

нет это все не работает.....

siv1987
На сайте с 02.04.2009
Offline
427
#5

С чего бы не работало, если сортировка идет по нужному вам полю? Может в descending порядке нужно?

L
На сайте с 01.11.2007
Offline
52
#6

группировка идет по N.id и получается при группировке берет только последнюю запись. а не первую как мне нужно ((( то есть если я добавляю TN.id DESC или TN.id ASC сортировка меняется. но не в присоединенной таблице (

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий