C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Нужен запрос
Valdemar
Отправлено: 24.01.2005, 15:33


Мастер участка

Группа: Участник
Сообщений: 433



Есть две таблицы (MySQL):
CODE

      tema                                    doc_tema
================             ================
tema_id    (int)                        doc_id     (int)
tema_name  (vchar)                 tema_id    (int)

Таблица doc_tema указывает принадлежность документов к темам.
Нужно написать запрос, который вернет названия всех тем с количеством документов по каждой теме. Т.е. в результате запроса должно содержаться ровно столько строк, сколько записей в таблице tema, в независимости от того есть по этой теме документы или нет (в этом случае в поле "Количество документов" должен быть 0)
full_lamer
Отправлено: 24.01.2005, 15:54


Машинист паровоза

Группа: Участник
Сообщений: 225



можно так
select tema_name, (
select count (*)
from doc_tema
where tema.tema_id = doc_tema.tema_id)
from tema
AVC
Отправлено: 24.01.2005, 15:55


Ветеран

Группа: Модератор
Сообщений: 1583



Если у вас не проходит вариант из XPortal, то помочь может только левое внешнее объединение. Его MySQL поддерживает? Если нет придется писать процедуру, если да — то так:
(схема, синтаксис Oracle)
Select tema.*, doc.cnt
From
tema t
,(Select tema_id, Count(*) as cnt From doc_tema
Group by tema_id
) doc
Where tema.tema_id = doc.tema_id (+)

Если так не пройдет — создать view для второго подзапроса и объединить их вариантом 1 или 2.
Valdemar
Отправлено: 24.01.2005, 17:49


Мастер участка

Группа: Участник
Сообщений: 433



Всем спасибо за содействие. На XPortal мне предложили нужное решение.

Вернуться в Работа с базами данных в C++Builder