Не получается составить выборку в запросе в базе

zaffasoft

Постоялец
Регистрация
2 Янв 2007
Сообщения
51
Реакции
9
Имеется таблица
tab_menu -> id | name | link
tab_gallery -> id | catid | imgdate
tab_gallery_catg -> cid | name
где
tab_gallery.id, будет подсчитывать общее количество в категории tab_gallery_catg.name в (totalf)
tab_gallery.catid будет соответствовать с таким же catid в tab_gallery_catg.cid
tab_gallery.imgdate будет брать данные и посчитывать количество за сегодня (totald)
tab_menu.id начиная с id 26 до 38 привязать по названию tab_gallery_catg.name (в tab_gallery_catg.id разные начиная с id 1)
tab_menu.name будет выводить название категории.
tab_menu.link будет выводить ссылку на категорию
Помогите составить запрос, чтобы выводился в таком формате, а также сортировался по возрастанию totalf
id name link totalf totald
26 Архитектура index.php?id=1 9 3
27 Портрет index.php?id=1 3 5
Я пытался сделать таким образом
PHP:
(SELECT id AS id, NAME AS NAME, link AS link
FROM tab_menu
WHERE id>=26 AND id<=38)
дальше пытался через Union all, не получилось.
 
Опиши пожалуйста какие значения должны быть в полях totalf и totald
 
Описано немного коряво, но если правильно пноял то
SELECT m.ID, m.Name, m.link, COUNT(cg.cID) AS totalf, COUNT(g.ID) AS totald
FROM tab_menu m, tab_gallery g, tab_gallery_catg cg WHERE
m.id=g.id AND g.catID=cg.cID AND m.ID BETWEEN 26 AND 38 AND g.imgdate = CURDATE()
GROUP BY m.ID, m.Name, m.link
ORDER BY totalf
 
@dronich: Пытался попробовать через твой составленный запрос. Вроде запрос прошел на ура, но почему то, результат пустой.:(

@pslava: totalf-общее количество фоток в данной категории
totald-общее количество фоток за сегодня в данной категории.
 
SELECT id AS id, NAME AS NAME, link AS link,
(SELECT COUNT(tab_gallery.id) FROM tab_gallery, tab_gallery_catg WHERE tab_gallery_catg.name=tm.name AND tab_gallery.catid=tab_gallery_catg.cid) AS totalf,
(SELECT COUNT(tab_gallery.id) FROM tab_gallery, tab_gallery_catg
WHERE tab_gallery_catg.name=tm.name
AND tab_gallery.catid=tab_gallery_catg.cid
AND tab_gallery.imgdate>CURDATE()) AS totald
FROM tab_menu tm
WHERE tm.id>=26 AND tm.id<=38
 
Назад
Сверху