Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Сортиране и извеждане на общ брой резултати спрямо втора таблица?

Featured Replies

Привет хора,

Имам нужда от помощ със заявката ми. Искам да направя следното - имам 3 таблици - една за главните резултати, една за гласове за отделните резултати и една за коментари към резултатите. Проблемът ми е, че искам да ги сортирам по най-висок положителен рейтинг, но нещо не ми се получава. Стигнах до тук:

SELECT r.*, COUNT(DISTINCT c.comm_id) as comms, COUNT(DISTINCT u.vote_id) as ups, COUNT(DISTINCT d.vote_id) as downs 
FROM rows r
LEFT JOIN rows_comms c ON (c.item_id = r.item_id)
LEFT JOIN votes u ON (u.group_id = r.item_group_id AND u.item_id = r.item_id AND u.vote = 1)
LEFT JOIN votes d ON (d.group_id = r.item_group_id AND d.item_id = r.item_id AND u.vote = 0)
WHERE r.approved = 1
ORDER BY ups DESC LIMIT 4"

Но не визуализира правилно когато има негативни и позитивни вотове за даден запис / резултат. Къде по-точно греша в заявката си и ако има по-оптимален начин за селектиране на нужните ми данни ще се радвам ако ме поправите!

 

EDIT:

Всъщност мисля, че открих решение на проблема си, като даже намалих с 1 джойн заявката. Ще се радвам ако някой по-компетентен каже дали правилно съм я направил с цел по-добра оптимизация на самото селектиране!

SELECT 
	r.row_id
	COUNT(CASE WHEN v.vote = 1 THEN 'up' end) as ups, 
	COUNT(CASE WHEN v.vote = 0 THEN 'down' end) as downs, 
	COUNT(DISTINCT c.comm_id) as comms
FROM rows r
LEFT JOIN comms c ON (c.row_id = r.row_id)
LEFT JOIN votes v ON (v.group_id = r.row_group_id AND v.item_id = r.row_id)
WHERE r.row_approved = 1
GROUP BY r.row_id ORDER BY ups DESC, comms DESC, r.row_added DESC LIMIT 4

 

Редактирано от streleca_stz (преглед на промените)

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.