php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-09-2010, 15:40
Laire
 Registrierter Benutzer
Links : Onlinestatus : Laire ist offline
Registriert seit: May 2004
Beiträge: 739
Laire ist zur Zeit noch ein unbeschriebenes Blatt
Standard Limitierte Abfrage -> von jeder Art nur einen

Hallo,

ich habe eine Datenbank mit folgender Struktur:

ID
TITEL
TIME
ANB

Bein ANB gibt es es die Werte 1, 2 und 3.

So jetzt möchte ich als Ausgabe von jedem ANB jeweils nur eine haben (den mit dem größten Wert bei TIME) also in diesem Fall 3 Ergebnisse und diese sollen auch wieder nach der Spalte TIME sortiert werden.

Kann ich das mit einer einzelnen Abfrage schaffen?
Mit Zitat antworten
  #2 (permalink)  
Alt 27-09-2010, 15:43
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

ja, das geht. Siehe hier.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #3 (permalink)  
Alt 27-09-2010, 16:05
Laire
 Registrierter Benutzer
Links : Onlinestatus : Laire ist offline
Registriert seit: May 2004
Beiträge: 739
Laire ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Erstmal Danke für den Link, aber es geht nicht ganz.

Ich habe jetzt folgende Abfrage

Code:
SELECT `title` , MAX( `time` )
FROM news
GROUP BY `anb`
So jetzt habe ich folgende Daten in der Tabelle:
ID = 1
TITLE = Titel 1
TIME = 201009151237
ANB = 1

ID = 2
TITLE = Titel 2
TIME = 201009161658
ANB = 1

ID = 3
TITLE = Titel 3
TIME = 201009240000
ANB = 2

ID = 4
TITLE = Titel 4
TIME = 201009240100
ANB = 2

So eigentlich bräuchte ich Titel 2 und Titel 4, aber die Abfrage gibt mir Titel 1 und Titel 3 aus.
Mit Zitat antworten
  #4 (permalink)  
Alt 27-09-2010, 16:24
Laire
 Registrierter Benutzer
Links : Onlinestatus : Laire ist offline
Registriert seit: May 2004
Beiträge: 739
Laire ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich sehe gerade das titel und time nicht übereinstimmen. Also er zeigt mir die größte time an, aber nicht den dazu passenden title
Mit Zitat antworten
  #5 (permalink)  
Alt 27-09-2010, 16:26
h3ll
 Registrierter Benutzer
Links : Onlinestatus : h3ll ist offline
Registriert seit: Mar 2008
Beiträge: 3.578
h3ll befindet sich auf einem aufstrebenden Ast
Standard

Logisch. Im GROUP BY müssen alle Spalten aus dem SELECT angeführt sein, weil es sonst zu einem undefinierten Ergebnis kommen kann. Jede andere Datenbank würde dir Fehlermeldungen um die Ohren hauen, nur MySQL gibt sich da besonders großzügig und fehlertolerant.
Mit Zitat antworten
  #6 (permalink)  
Alt 27-09-2010, 16:30
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Lies den gesamten Thread. Dass die Variante mit max/group by dort nicht zum Ziel geführt hat und ich eine andere Variante vorgeschlagen hatte, die genau auf dein Problem passt, geht eigentlich deutlich hervor, dachte ich.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #7 (permalink)  
Alt 27-09-2010, 16:37
Laire
 Registrierter Benutzer
Links : Onlinestatus : Laire ist offline
Registriert seit: May 2004
Beiträge: 739
Laire ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok Danke, hiermit geht es:

Code:
SELECT * FROM 
(SELECT * FROM news ORDER BY time DESC) AS s
GROUP BY anb
ORDER BY time DESC
Mit Zitat antworten
  #8 (permalink)  
Alt 27-09-2010, 16:39
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Wenn du nur wenige Datensätze hast und dir das von der Performance her ausreicht, ist ja gut, aber diese Variante ist eigentlich nicht zu empfehlen, wenn man auf Performance achtet, gibt es bessere Varianten (steht auch im verlinkten Thread).
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
MYSQL Abfrage: Jeder neuen Zeile eine Nummer zuweisen Mathes PHP Developer Forum 4 29-08-2006 17:39
[SQL allgemein] Abfrage sotiert nach Wert aber von jeder ID nur eine Laire SQL / Datenbanken 1 23-06-2005 09:39
Select Abfrage in einen Array Sebastian.J PHP Developer Forum 4 02-05-2004 13:33
[MySQL 3.23.X] bei jeder abfrage 1 weniger unwissender SQL / Datenbanken 4 19-01-2004 23:59
SQL Abfrage in einen CUG-Bereich ausgeben dadi PHP Developer Forum 0 01-04-2002 22:31

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:34 Uhr.