powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сделать такую выборку??
7 сообщений из 7, страница 1 из 1
Как сделать такую выборку??
    #32904930
Relaxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть вот такой запрос:
Код: plaintext
1.
2.
3.
select ctr.c_id, ctr.c_name, count(*) as c_count 
from tbl_cats_tree ctr, tbl_texts tx, tbl_cat_text ctx
where ctr.c_id=ctx.ct_cat && tx.t_id=ctx.ct_text && ctr.c_parent='5' group by ctr.c_id, ctr.c_name order by ctr.c_ord

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

Так вот этот запрос работает без проблем, но он выбирает только те рубрики у которых есть пренадлежащие тексти, а мне нужно чтобы вибирал все рубрики(и пустые тоже). Как сделать такое соединение в майСКЛ я не знаю, в Оракл я делал с помощью оператора (+), а здесь как????
...
Рейтинг: 0 / 0
Как сделать такую выборку??
    #32905009
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
left join
...
Рейтинг: 0 / 0
Как сделать такую выборку??
    #32906092
Relaxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а поподробней, как мне это запрос переписать, или где нпйти хорошую доку по МайСКЛ?
...
Рейтинг: 0 / 0
Как сделать такую выборку??
    #32906129
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Скажу по секрету, начиная с 9i в Oracle тоже есть left join
2. Быстее найти по поиску
...
Рейтинг: 0 / 0
Как сделать такую выборку??
    #32906842
demon11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select tbl_cats_tree.c_id, tbl_cats_tree.c_name, count(*) as c_count
from tbl_cats_tree left join tbl_texts inner join tbl_cat_text on tbl_texts.t_id=tbl_cat_text.ct_text on tbl_cats_tree.c_id=tbl_texts.ct_cat
where tbl_cats_tree.c_parent='5'
group by tbl_cats_tree.c_id, tbl_cats_tree.c_name
order by tbl_cats_tree.c_ord

или как то так, не очень в суть названий таблиц вникал
...
Рейтинг: 0 / 0
Как сделать такую выборку??
    #32911712
Relaxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, тогда для простоты примера я взял 2 таблицы и сделал вот какой запрос(с left join)
Код: plaintext
1.
2.
select c_id, c_name, count(*) as c_count from tbl_cats_tree c left join t
bl_cat_text t ON c.c_id=t.ct_cat where c_parent='3'group by c_id, c_name order b
y c_ord;
этот запрос выдал мне уже все категории даже у которых нет связи с таблицей tbl_cat_text. Но почему-то он мне выдал count этих записей = 1, тогда как должно быть 0, почему???
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
+------+---------------------+---------+
| c_id | c_name              | c_count |
+------+---------------------+---------+
|    4 | Боевики             |       1 |
|    5 | Комедии             |       2 |
|    6 | Триллеры            |       1 |
|    7 | Мистика             |       1 |
|    8 | Мультфильмы         |       1 |
|    9 | КВН                 |       1 |
|   10 | Переводы от Гоблина |       1 |
+------+---------------------+---------+
хотя пеально тексты принадлежат только к рубрике "Комедии"? их там 2, а в остальных по нулям, почему так???
...
Рейтинг: 0 / 0
Как сделать такую выборку??
    #32911759
Welly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relaxxx
Код: plaintext
1.
2.
select c_id, c_name, count(*) as c_count from tbl_cats_tree c left join t
bl_cat_text t ON c.c_id=t.ct_cat where c_parent='3'group by c_id, c_name order b
y c_ord;
этот запрос выдал мне уже все категории даже у которых нет связи с таблицей tbl_cat_text. Но почему-то он мне выдал count этих записей = 1, тогда как должно быть 0, почему???

почему так???

Потому что count(*) надо изменить на count(t.*)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как сделать такую выборку??
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]