|
Страници по тази тема: 1 | 2 | >> (покажи всички)
Тема
|
свързани таблици....
|
|
Автор |
Topбaлaн (любопитко) |
Публикувано | 03.10.03 13:40 |
|
имам три таблици....една главна и две свързани та проблема ми е как да преброя записите в една свързана таблица а в друга да сумирам стойностите в едно поле, но без подзаявки....
за MySql 3.23.58 става дума...
Редактирано от Topбaлaн на 03.10.03 13:42.
| |
Тема
|
Re: свързани таблици....
[re: Topбaлaн]
|
|
Автор | AcidMemory (Нерегистриран) |
Публикувано | 03.10.03 14:08 |
|
дай някакъв пример, че не те разбрах точно какво искаш да направиш ...
| |
|
Нещо не загрях, какво искаш да направиш. Дай някакъв пример!
General Protection Fault in module 0xDEEBAA. Рестартирайте държавата!
| |
Тема
|
пример
[re: Topбaлaн]
|
|
Автор | torbalan (Нерегистриран) |
Публикувано | 03.10.03 14:37 |
|
SELECT memberpics.pic_name AS 'Заглавие',
________COUNT(comments.fromdate) AS 'Коментари',
________SUM(votes.vote) AS 'Точки',
FROM memberpics
________LEFT JOIN comments ON (memberpics.pic_id = comments.pic_id)
________LEFT JOIN votes ON (memberpics.pic_id = votes.pic_id)
GROUP BY memberpics.pic_id
ORDER BY memberpics.pic_id DESC
LIMIT 10
нещо подобно да речем.....
| |
Тема
|
Re: пример ли?
[re: torbalan]
|
|
Автор |
salle (един такъв) |
Публикувано | 03.10.03 17:18 |
|
Ами какво ти пречи да го направиш?
| |
|
защо искаш да набуташ всичко в едно запитване? направи си 2 помощни views и действай.
Ако много държиш да е в едно view то използвай nested selects. само, че не знам MySQL доколко е развит за такива работки. В Oracle бих написал нещо такова:
SELECT memberpics.pic_name AS 'Заглавие', memberpics.pic_id as picture_id,
(SELECT COUNT(comments.fromdate) FROM comments GROUP BY comments.pic_id HAVING comments.pic_id=picture_id ) AS 'Коментари',
(SELECT SUM(votes.vote) FROM votes GROUP BY votes.pic_id HAVING votes.pic_id=picture_id) AS 'Точки'ORDER BY memberpics.pic_id DESC
LIMIT 10
тук picture_id ти е нещо като global variable, който се автоподава като параметър в вътрешните запитвания...
... абе нещо такова - не казвам, че това, което съм написал е баш как-требе!
General Protection Fault in module 0xDEEBAA. Рестартирайте държавата!
| |
Тема
|
Re: пример
[re: torbalan]
|
|
Автор | zip (Нерегистриран) |
Публикувано | 03.10.03 19:15 |
|
мисля че не може да стане в една заявка (без да изполваш 2 вюта за резултатите или без вложени заявки)
ако беше само да ги пребройш Ок. с distinct по ключа в подчинените табици
ама за сумата незнам
sale изглежда като че ли има решение
ако му е възможно да го post-не :)
| |
Тема
|
Re: пример
[re: torbalan]
|
|
Автор | AcidMemory (Нерегистриран) |
Публикувано | 04.10.03 14:42 |
|
а какво и има на заявката ???
тука набързо я нахвърлих същата към една инсталация на phpbb и си бачка като пушка ...
select a.pic_id, a.pic_title, count(ac.comment_id), sum(ar.rate_point)
from phpbb_album a
left join phpbb_album_comment ac on (a.pic_id = ac.comment_pic_id)
left join phpbb_album_rate ar on (a.pic_id = ar.rate_pic_id)
group by a.pic_id
order by a.pic_id desc
limit 10
| |
|
ами не работи както аз искам...
има две свързани записи и съответно повече редове в отговора отколкото на мен ми трябват
и сбора от оценките и броя на коментарите в резултата не са верни...
нещо от този род ми трябва:
SELECT memberpics.pic_name AS 'Заглавие', memberpics.pic_id as picture_id,
(SELECT COUNT(comments.fromdate) FROM comments GROUP BY comments.pic_id HAVING comments.pic_id=picture_id ) AS 'Коментари',
(SELECT SUM(votes.vote) FROM votes GROUP BY votes.pic_id HAVING votes.pic_id=picture_id) AS 'Точки'ORDER BY memberpics.pic_id DESC
Редактирано от Topбaлaн на 06.10.03 09:21.
| |
|
??? нещо си в грешка, бе човек
не може да ти се повтарят записи, след като left join-ваш по таблицата ...
постни данни от таблицата да видим - нещо не правиш както трябва или не те разбирам, но заявката (която ти написах) вади за всяка картинка сумата от оценките и сумата от коментарите към нея (принципно ще ти е по-полезно avg(от оценките), щото сумата няма какво да я правиш)
| |
|
Страници по тази тема: 1 | 2 | >> (покажи всички)
|
|
|