andrzej_
18.01.2012, 16:49:32
Witam, oczywiście użyłem wyszukiwarki, jednak ciężko się dostosować z własną strukturą bazy do cudzych odpowiedzi.
Co próbuje zrobić, to sortowanie wyników po danych z innej tabeli, struktura:
tabela1 [zdjecie] : id | nazwa | galeria | ocena
tabela2 [galeria] : id | nazwa
Każde zdjęcie jest przypisane do galerii przez jej numer ID, ja chciałbym zrobić sortowanie wszystkich galerii poprzez zsumowanie ocen zdjęć które są przypisane do niej. Domyślam się, że można w prosty sposób zrobić przez zapytanie SQL, jednak nie wiem jak je skonstruować, ze swoich pomysłów mogę to zrobić ewentualnie poprzez wyciągniecie wszystkiego do tablic, a później zsumowanie i posortowanie, lub dodaniu pola 'pełna ocena' w tabela2 [galeria] i przy ocenie działać na obu, ale jeżeli można zaoszczędzić na miejscu, to czemu nie. Proszę o podpowiedź albo link do funkcji/tutoriala, który może mi pomóc.
Dziękuje z góry i pozdrawiam!
Andrzej
nospor
18.01.2012, 16:51:59
group by oraz order by sum(...)
andrzej_
18.01.2012, 17:47:09
Cytat(nospor @ 18.01.2012, 16:51:59 )

group by oraz order by sum(...)
Dzięki za szybką odpowiedź, przeczytałem instrukcje funkcji, i wyszło mi coś takiego:
SELECT SUM(ocena) AS asd FROM zdjecie, galeria WHERE zdjecie.galeria = galeria.id GROUP BY asd
Jednak, jedyna rzecz, którą zapytanie robi, to sumowanie wszystkich ocen jako "asd". Domyślam się, że kolejność w zapytaniu pokręciłem, czy coś więcej?
nospor
19.01.2012, 08:13:19
group by masz robic po galeria.id
andrzej_
19.01.2012, 13:39:25
Super, działa. Faktycznie, pomyliłem się i chciałem to sortować przez asd, mała zmianka i wszystko śmiga, dziękuje serdecznie nospor!
pytanie bonus: przy pobieraniu przez sql danych z dwóch różnych tabel, w których są takie same nazwy pól [np. nazwa w tym wypadku], czy jest opcja aby zrobić np. SELECT * FROM galeria, zdjecia.ocena, lub coś w tym stylu, wiem, że mogę wypisać wszystkie pola z jeden tabeli po przecinku, ale to tez chyba można skrócić, dane dalej są w pętli while, przez mysql_fetch_assoc ($zmienna[nazwa]), i trochę kolidują ze sobą.
nospor
19.01.2012, 14:00:27
SELECT tabela1.*, tabela2.nazwa AS innanazwa.....
andrzej_
19.01.2012, 14:06:14
I dziękuje ponownie, widząc swoje braki wiedzy, wracam do manuala.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.