Общие > Базы данных

MySQL сортировка по данным из других таблиц

(1/2) > >>

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

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии