Общие > Базы данных
MySQL сортировка по данным из других таблиц
Trinux:
Есть 3 таблицы. Каталоги, подкаталоги, программы.
cat:
id
name
pod_cat:
id
cat_id
name
program:
id
pod_id
name
Примерно так. Т.е. в таблице прог не указан каталог, в которм находится прога, только подкаталог.
Каталоги резделены брейком (
) на главной. Хотелось бы чтобы каталог, в котором больше всего прог был наверху итд. Т.е. сортировались по убыванию. Но вот проблема.... Как сосчитать количество программ в каталоге, учитывая что в каждом каталоге не один подкаталог. Т.е. даже не так. Можно ли обойтись только MySQL запросом, минуя php код или нет?
commander:
изначально не правильно составленны таблицы катологов и документов... советую сделать примерно так:
CREATE TABLE folder
(
folder_id serial,
parent_folder_id int4,
name varchar(300),
CONSTRAINT folder_pk PRIMARY KEY (folder_id),
CONSTRAINT folder_parent_folder_id FOREIGN KEY (parent_folder_id) REFERENCES folder(id) ON UPDATE NO ACTION ON DELETE NO ACTION
);
CREATE TABLE document
(
document_id serial,
folder_id int4,
name varchar(300),
CONSTRAINT document_pk PRIMARY KEY (document_id)
);
commander:
верхний родительский каталог вставляешь ручками.. остальный подкаталоги можно приложением... система имеет неограниченную степень вложения каталогов и документов...
Макс:
commander
[off] человек же ясно написал, что у него mysql а ты опять про постгрес пишешь. Потом будешь объяснять ему, что такое serial и почему он не работает в его любимой СУБД [/off]
commander:
Макс
виноват...
serial = int not null auto_increment
Навигация
Перейти к полной версии