Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 07:47 30.06.24 
Компютри и Интернет
   >> Бази данни
Всички теми Следваща тема *Кратък преглед

Тема MySQL - избягване на вложен селектнови  
Автор Ивaнyшka (3-ти царски син)
Публикувано07.04.03 17:47



Задачка закачка:
Две таблици:

documents(docid, title, razdel, ...)
съдържа документи с уникален docid
rating(ratid, docid, ...)
гласуване за всеки документ - общия рейтинг се постига със сумиране.

Проблемът
Как да отделя документите от един раздел, сортирани по рейтинг и с работещ
LIMIT
Аз стигнах до едно решение с две TEMPORARY TABLE, но не ме удволетворява особенно

Българската литература


Е-журнал за нова българска литература

Тема Re: MySQL - избягване на вложен селект [re: Ивaнyшka]  
Автор Topбaлaн (любопитко)
Публикувано07.04.03 18:31



SELECT sum( votes.vote ) AS total, memberpics.pic_name
FROM `votes`
LEFT JOIN memberpics
USING ( pic_id )
WHERE memberpics.pic_galery = 'конкурс: автопортрет'
GROUP BY votes.pic_id
ORDER BY total DESC
LIMIT 10

структурата е много подобна на твоята...
нещо подобно не ти ли върши работа ?



Тема Re: MySQL - избягване на вложен селектнови [re: Topбaлaн]  
Автор Ивaнyшka (3-ти царски син)
Публикувано08.04.03 09:56



SELECT sum( voting.rating ) AS total, documents.docid, documents.title FROM `voting` LEFT JOIN documents USING ( docid ) WHERE documents.razdel = 36 GROUP BY voting.docid ORDER BY total DESC LIMIT 10

Три бири и оркестъра да свири.
Заповядай на 19.04 на сбирката на "Буквите" да те почерпя

Българската литература


Е-журнал за нова българска литература

Тема Re: MySQL - избягване на вложен селектнови [re: Ивaнyшka]  
Автор Topбaлaн (любопитко)
Публикувано08.04.03 10:16



Мерси!
чесно казано - не разбрах как заработих почерпката...

това, дето го написах го има в хелпа на my sql -



salle само трябва да погледне страницата, що изглежда така странно (то може и да е от моя браузер, ама кой знае...)



Тема Salle ако даде друга идеянови [re: Topбaлaн]  
Автор Ивaнyшka (3-ти царски син)
Публикувано08.04.03 10:26



така написания синтактис работи само за docid за които има някакво гласуване.
Но за тези които няма нищо в voting, не излизат в селекта.
А това е проблем, не ми се въвеждат изкуствени нули...

Българската литература


Е-журнал за нова българска литература

Тема Re: Salle ако даде друга идеянови [re: Ивaнyшka]  
Автор Topбaлaн (любопитко)
Публикувано08.04.03 11:19



SELECT ......IFNULL(docid, 0) AS docid......

виж дали това няма да свърши работа...
но по същество, за какво са ти тези, за които не е гласувано?

SELECT sum( votes.vote ) AS total, IFNULL( memberpics.pic_galery, 'няма я' ) AS galery
FROM `votes`
LEFT JOIN memberpics USING ( pic_id )
GROUP BY votes.pic_id
HAVING galery = 'няма я'
ORDER BY total DESC
LIMIT 10

е това си работи при мен....

Редактирано от Topбaлaн на 08.04.03 11:29.



Тема Re: MySQL - избягване на вложен селектнови [re: Ивaнyшka]  
Автор salle (минаващ)
Публикувано08.04.03 12:20



documents(docid, title, razdel, ...)
съдържа документи с уникален docid
rating(ratid, docid, ...)
гласуване за всеки документ - общия рейтинг се постига със сумиране.

SELECT d.razdel, d.docid, SUM(r.ratid) AS Vote
FROM documents AS d LEFT JOIN rating AS r USING(docid)
GROUP BY d.razdel, d.docid
ORDER BY Vote DESC
LIMIT 10;


SELECT d.docid, SUM(r.ratid) AS Vote
FROM documents AS d LEFT JOIN rating AS r USING(docid)
WHERE d.razdel = 666
GROUP BY d.docid
ORDER BY Vote DESC
LIMIT 10;



Тема Re: MySQL - избягване на вложен селектнови [re: salle]  
Автор Ивaнyшka (3-ти царски син)
Публикувано08.04.03 13:43



Който може, го може!
Salle твоят тръгна от раз.
Благодаря и на двамата

Българската литература


Е-журнал за нова българска литература


Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.