Помогите с mysql запросом из 2-х таблиц

Zlo_606ep
На сайте с 14.12.2006
Offline
129
783

В общем так, есть 2 таблицы, связаны по ключу 1 к М, индексу из первой таблицы соответствует множество записей второй таблицы, но в первой есть такие значения ключа, которым нет соответствия во второй

нужно одним запросом (потому что потом по нему иду циклом) выбрать все записи из первой, отсортировав по количеству записей с таким значением (uid) из второй

табл._1_____табл. 2

id__t________id__uid

1__a________1__1

2__a________2__1

3__a________3__2

пытаюсь так

SELECT a.id, a.t, count(b.id) as col

FROM a INNER JOIN b ON a.id=b.uid GROUP BY b.id ORDER BY col DESC LIMIT $start, 50

то есть хочу увидеть

1___a___2

2___a___0

3___a___0

проблема с ним в том, что возвращает только те значения, которые есть в обоих таблицах, а хотелось бы если во второй таблице нет таких (col=0), то они как пустые плелись в конце.

Пробовал различные сочетания join т.п. не выходит, прошу помощи у спецов по запросам.

Robbie
На сайте с 03.11.2005
Offline
68
#1

Нужно использовать LEFT JOIN, для того он и предназначен.

Конкретно за mySQL не скажу, сейчас вот в MS Access сделал:

SELECT a.id, a.t, Count(b.id) as col

FROM a LEFT JOIN b ON a.id = b.uid

GROUP BY a.id, a.t

ORDER BY Count(b.id) DESC

Zlo_606ep
На сайте с 14.12.2006
Offline
129
#2

всё равно у меня выводятся только записи из двух таблиц

Pavka
На сайте с 20.05.2005
Offline
82
#3

Скиньте дамп таблиц на pavel{}rusedu.ru.

Без него трудно что либо советовать :)

Без подписи
Pavka
На сайте с 20.05.2005
Offline
82
#4
всё равно у меня выводятся только записи из двух таблиц

Навскидку..

SELECT a.id, a.t, Count(b.id) as col
FROM a,b WHERE a.id = b.uid
GROUP BY a.id, a.t
ORDER BY Count(b.id) DESC

так попробуйте

Shtogrin
На сайте с 02.11.2006
Offline
95
#5
Zlo_606ep:

то есть хочу увидеть
1___a___2
2___a___0 здесь наверно 1, 3__2
3___a___0

SELECT 

a.id,
a.t,
(SELECT count(b.id) FROM b WHERE b.uid =a.id) AS col
FROM a
ORDER BY col DESC

+----+---+--------+

| id | t | col |
+----+---+--------+
| 1 | a | 2 |
| 2 | a | 1 |
| 3 | a | 0 |
+----+---+--------+
www.shtogrin.com (http://www.shtogrin.com/). Канцтовары (http://www.invit.com.ua/). 1С Бухгалтерия (http://account.kiev.ua/).
Zlo_606ep
На сайте с 14.12.2006
Offline
129
#6

Shtogrin

Гениально! Я просто всегда с подозрением относился к вложенным запросам в mySQL, но время идет все улучшается...

p.s. Предыдущие запросы тоже не выдавали все записи

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