php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.04.2006, 16:06  
db
Neuer Benutzer
 
Registriert seit: 22.09.2004
Beiträge: 19
db
Standard Datensatz mit höchsten Wert aus verknüpfter Tabelle ausgeben

Hallo,


leider habe ich keine Idee, wie ich folgendes Problem elegant lösen kann:

Gegeben ist eine Bilder-Galerie mit den relevanten Tabellen gallery_album und gallery_picture.
Verknüpft sind die beiden Tabellen über das Feld gallery_picture.albumid

Ich möchte nur in der Album-Auswahl als Vorschau-Bild das Bild mit den meisten views anzeigen.
Die views für das jeweilige Bild werden im Feld gallery_picture.views gehalten.


Würde mich sehr freuen, wenn Ihr mir bei der Lösungsfindung behilflich sein könntet.

Vielen Dank.


Mein aktuelles Statement für die Alben-Übersicht sieht wie folgt aus:

Code:
     $album_statement = "SELECT a.id, a.date, a.name, a.description, a.location, a.filepath ".
     		             "FROM gallery_album a ".
                        "WHERE a.active = 1 ".
                        "AND a.galleryid = $galleryid ".
                        "ORDER BY a.sort desc ".
                        "LIMIT $start,$perpage";
db ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.04.2006, 17:11  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.232
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Code:
SELECT ...
FROM (
SELECT albumid FROM gallery_picture ORDER BY views DESC LIMIT 0, 1
) AS a INNER JOIN gallery_album b ON a.albumid=b.id
Reicht das als Gedankenstütze? Funktioniert ab MySQL 4.1
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 26.04.2006, 11:48  
db
Neuer Benutzer
 
Registriert seit: 22.09.2004
Beiträge: 19
db
Standard

Danke für die schnelle Hilfe.


Dein Tipp war ausreichend, leider ist auf vielen Webspaces nur MySQL 4.0.xx verfügbar und somit dieser subselect nicht verwendbar.

Ich hab nochmal versucht, dass jetzt mal ohne subselect zu lösen.
Zugegeben, das Statement ist etwas durch die Brust ins Auge, aber irgendwie bekomme ich es einfach nicht hin.

Code:
SELECT a.id, a.date, a.name, a.description, a.location, a.filepath, p.id AS pid
FROM wb_gallery_album a, wb_gallery_picture p
WHERE a.active = 1
AND p.active = 1
AND a.id = p.albumid
AND a.galleryid = 1
GROUP BY p.albumid
ORDER BY a.sort desc, p.views desc
LIMIT 0,10
Funktioniert soweit ganz gut, allerdings bekomme ich nicht das Bild mit den meisten views angezeigt, sondern den ersten Datensatz des jeweiligen Album. Problem hierbei wird wohl das vorab greifende GROUP BY sein, das "p.views desc" könnte ich mir somit auch schenken.

Gibt es auch dafür eine funktionierende Lösung ohne subselect?


Danke für Eure Hilfe!
db ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Prüfen, ob ein Wert in der Tabelle ist Inchie PHP Tipps 2008 2 02.07.2008 21:08
Spalteninhalt in Tabelle ausgeben markbraue PHP Tipps 2008 4 10.06.2008 14:28
maximum wert einer tabelle wiedergeben incubo PHP-Fortgeschrittene 6 13.03.2008 18:22
werte aus tabelle nebeneinander ausgeben Schiedsrichter PHP Tipps 2008 2 15.02.2008 10:20
Jeden Wert nur Einmal ausgeben maximus PHP Tipps 2006 2 15.05.2006 23:15
Vergleich von einem Wert, mit Werten aus einer Tabelle PHP Tipps 2005 14 01.11.2005 03:04
Select-feld wert ausgeben jens76 HTML, Usability und Barrierefreiheit 1 17.10.2005 12:48
Ein Datensatz ausgeben PHP Tipps 2005 8 02.06.2005 21:52
MySQL_fetch_row nur ein Wert ausgeben? PHP Tipps 2005 4 08.03.2005 10:20
[Erledigt] Ganze Tabelle ausgeben PHP Tipps 2004-2 1 21.11.2004 16:48
[Erledigt] mysql-Abfrage in Tabelle ausgeben - dringend hilfe PHP Tipps 2004 2 03.11.2004 15:41
Datensatz abfragen und in Formularfeldern ausgeben Datenbanken 1 25.08.2004 09:24
Maximal Wert in MYSQL Tabelle nach id rausfinden? PHP Tipps 2004 3 03.07.2004 23:27
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45
DB sicher in Tabelle ausgeben PHP Tipps 2004 5 03.06.2004 14:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql datensatz mit höchstem wert, sql datensatz mit größtem wert, sql größten wert ausgeben, sql zeile mit höchstem wert, sql datensatz mit dem höchsten wert, sql höchster datensatz, sql höchster wert, sql höchsten wert ausgeben, sql datensatz mit größtem datum, sql nur den höchsten wert, sql nur größtes datum ausgeben, sql datensatz mit höchster id, sql größter wert, sql zeile mit höchstem wert ausgeben, sql nur größten wert ausgeben, php sql höchster wert, sql datensatz höchster, sql datensatz mit der höchsten id, höchste datensatz sql, sql datensatz mit kleinstem wert

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:33 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.