php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 05.07.2006, 10:18  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard verzwicktes Select mit Group

Hallo, ich habe eine Tabelle in der verschiedene Arbeiten gespeichert sind (Fotos z.B.). Jedes Foto kann entweder zu einer Fotoserie (serien_id) oder zu keiner Serie (serien_id = 0) gehören.
Mein Problem besteht nun darin das ich gerne eine Übersicht ausgeben wollte, und zwar alle Arbeiten mit keiner Serie und von jeder Serie jeweils eine Arbeit, Sortierkriterium ist das Datum.

Hier nochmal meine Tabelle zum Verständnis:
Code:
media
- id
- serien_id
- mitglieder_id
- erstellt
In den Tabellen mitglieder und serien sind jeweils die Daten der Mitglieder und Serien hinterlegt.

Ich habe bisher folgende Abfrage:
Code:
SELECT
    a.id AS "ID",
    a.titel AS "TITEL",
    a.serien_id AS "SERIE",
    UNIX_TIMESTAMP(a.erstellt) AS "ERSTELLT",
    CONCAT_WS(" ", b.vorname, b.nachname) AS "NAME"			  
FROM
    media AS a,
    mitglieder AS b
WHERE
    a.mitglieder_id = b.id
ORDER BY
    a.erstellt DESC
LIMIT '.$offset.', '.$limit.'
Nun die Frage: Wie bekomme ich es hin das alle Datensätze mit serien_id == 0 und jeweils der aktuellste mit serien_id != 0 ausgegeben wird?

Ich hoffe ich konnte das verständlich erklären, Danke für die Hilfe...
mAy
mAy^daY ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 05.07.2006, 11:27  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Code:
SELECT DISTINCT serien_id, titel FROM media WHERE serien_id > 0 ORDER BY erstellt DESC
UNION
SELECT serien_id, titel FROM media WHERE serien_id = 0
..wäre jetzt meine erste Überlegung gewesen. Eventuell musst du die Sortierung von DESC auf ASC stellen, weiß gerade nicht welchen Datensatz DISTINCT wählt, den ersten oder letzten (vermute mal den ersten).
Zergling-new ist offline   Mit Zitat antworten
Alt 05.07.2006, 12:29  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard

Danke, wie mache ich das mit dem Limit? Es sollten pro Seite nur 24 Arbeiten ausgegeben werden, also wo muß ich jetzt das "LIMIT x, 24" einbauen?
mAy^daY ist offline   Mit Zitat antworten
Alt 05.07.2006, 12:39  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Geht bei UNION nicht auf das Gesamtergebnis.
Erstell dir halt virtuell Seiten. Dazu musst du wissen wieviele Ergebnisse es für serien_id > 0 (ohne doppelte) gibt und serien_i = 0.

Mit dem Wissen ist es eigentlich einfache Mathematik die LIMITs der einzelnen SELECTs zu setzen. Einfach mal auf Papier klar machen und mit Minibeispielen (2 Einträgen pro Seite zB) rechnen.
Zergling-new ist offline   Mit Zitat antworten
Alt 05.07.2006, 18:10  
Erfahrener Benutzer
 
Registriert seit: 23.12.2003
Beiträge: 243
mAy^daY
Standard

Ok, danke dir!
Sowas in die Richtung habe ich mir schon fast gedacht, die Anzahl der Ergebnisse ist ja kein Problem da die weitere verarbeitung eh mit php geschieht. Sollte ich also hinbekommen

Gruß mAy
mAy^daY 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] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
Abfrage mit count, order by, group by...und Probleme BartTheDevil89 Datenbanken 2 15.06.2008 13:34
[Erledigt] Mysql Insert Select + Concat Hu5eL Datenbanken 14 10.06.2008 10:39
[gelöst] SELECT COUNT(*) FROM SUBSELECT braucht ewig! stefanjann Datenbanken 3 25.02.2008 08:44
Group...???? mastercoyote Datenbanken 2 08.02.2008 12:48
Bei Group auf multiple Ergebnisse zugreifen obi Datenbanken 1 14.08.2007 23:47
Min - Max auch ohne GROUP BY tekknotrip Datenbanken 6 17.04.2007 11:06
SELECT AS geht bei AVG net cyberholic Datenbanken 0 04.05.2006 09:43
SELECT Sum matthros PHP Tipps 2006 30 26.04.2006 17:52
[JavaScript] Event Handler in form select - Syntax? winfo_cologne HTML, Usability und Barrierefreiheit 5 29.03.2006 16:47
[Erledigt] probleme beim MIN() (Group BY) 18inch Datenbanken 2 31.12.2004 11:54
select Interpret from cds group by cds - Aber z.B. a-b?? PHP Tipps 2004-2 3 30.11.2004 10:19
mehrere COUNT() mit verschiedenen GROUP BY -- geht das? tapferesschneiderlein Datenbanken 0 08.09.2004 14:54
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13
selektierter wert in select box anzeigen PHP Tipps 2004 6 30.08.2004 13:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select ohne group, concat_ws in union einbauen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:19 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.