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 24-08-2009, 11:44
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard Sub-LIMIT

Ich habe nun auch mal (wieder) ein Problem ...

Es gibt eine SQL-Tabelle (A) und eine Referenz-Tabelle (B).

Tabelle A
- id
- fk_b_id
- text
- datumzeit

Tabelle B
- id
- name

Tabelle B wird als FK genutzt.

Es sollen aus Tabelle A nur die letzten 5 Datensätze (basierend auf "datumzeit") pro FK ausgelesen werden.

Aktuell nutze ich diese Query.
Code:
SELECT
	a.`id`,
	b.`id`,
	a.`text`
	a.`datumzeit`
FROM
	`tabelle a` a
		LEFT JOIN `tabelle b` b
		ON (
			b.`id` = a.`fk_b_id`
		)
Ein DATE_SUB bringt nichts, wenn zu einer FK_ID längere Zeit keine Daten enthalten sind.

Ich habe da grad irgendwie keine Idee.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #2 (permalink)  
Alt 24-08-2009, 11:53
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

GROUP BY, ORDER und LIMIT ... sollte doch kein Problem sein oder hab ich dein Anliegen falsch verstanden?
Mit Zitat antworten
  #3 (permalink)  
Alt 24-08-2009, 12:01
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Das hast du vermutlich ...

Das LIMIT bezieht sich auf die ganze Query und nicht auf die externen Referenzen. Pro externer Referenz sollen maximal x Werte gezeigt werden.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #4 (permalink)  
Alt 24-08-2009, 12:32
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,

probier mal sowas in der Art:
Code:
set @a:=0;
select *, @a:=(@a + 1) % 5 from (
    select * from `tabelle a` order by fk_b_id, datumzeit desc
) as ta
join `tabelle b` as tb on tb.id = ta.fk_b_id
group by concat(tb.id, '-', @a)
order by ta.id, tb.id, datumzeit desc
Gruß,

Anja
Mit Zitat antworten
  #5 (permalink)  
Alt 24-08-2009, 12:36
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Common Queries Tree
Mit Zitat antworten
  #6 (permalink)  
Alt 24-08-2009, 12:46
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

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Wenn ich das richtig verstehe, habe ich mit meinem Ansatz sogar das Performance-Problem des dortigen umgangen, ohne temporäre Tabellen zu nutzen?!?

Edit: wäre jetzt nur die Frage, inwiefern ich durch das Subselect ein neues verursache. Kannst du das mal benchmarken, Abraxax?

Geändert von AmicaNoctis (24-08-2009 um 12:49 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 24-08-2009, 15:33
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

So .. da bin ich wieder.

@Anja.
Danke für deine Query, aber es scheinen die falschen Daten geliefert zu werden. Ich erhalte pro Referenz nur einen Eintrag. So etwas ähnlich habe ich schon im Einsatz mit MAX() auf der datetime-Spalte.

@onemorenerd
Das ist genau das was ich gesucht habe.

@all
Das Thema Schleifen wollte ich eigentlich vermeiden. Die Ausgabe der Daten soll nur einen kurzen Status liefern. Das wäre mit Kanonen auf Spatzen geschossen.
@Anja. Daher habe ich auch kein Benchmark gemacht. ;-) Zumal meine Daten aktuell noch "überschaubar" sind.

Ich werde jetzt vermutlich nur einen "Reiter" zur Ansicht pro Referenz machen. Das sollte genügen. Aktuell gibt es 5 Referenzen und 126 Hauptdatensätze.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #8 (permalink)  
Alt 24-08-2009, 15: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

Zitat:
Zitat von Abraxax Beitrag anzeigen
Ich erhalte pro Referenz nur einen Eintrag.
Das klingt, als hättest du "set @a:=0" vergessen. Eigentlich klappt das nämlich prima, hab mir extra deine beiden Tabellen angelegt, gefüllt und dann damit getestet.
Mit Zitat antworten
  #9 (permalink)  
Alt 24-08-2009, 15:53
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

Leider habe ich das nicht vergessen. ;-)

Was allerdings sein kann ... Ich habe natürlich nicht die echten Tabellen gepostet, sondern nur einen vereinfachte Form. Möglicherweise ist es hierbei dazu gekommen, dass ich Werte vertauscht habe. Das kann ich mir zwar nicht vorstellen, aber ausschließen kann ich es natürlich auch nicht.

Ich habe das Thema wie gesagt nun anders gelöst.

Ohne Filter, werden nur offene Punkte der Queue gezeigt. Wenn ein Filter auf eine Referenz gesetzt ist, wird die Queue dieser einen Referenz gezeigt. Das macht die Sache zusätzlich noch übersichtlicher, wie ich finde.

Dennoch Danke für deine/eure Hilfe!
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


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
sql letzten 5 + limit activexactive PHP Developer Forum 10 06-08-2009 16:56
Limit lupo PHP Developer Forum 6 14-11-2005 18:26
limit rönee SQL / Datenbanken 2 05-02-2005 20:44
sum mit limit thetexas SQL / Datenbanken 4 08-07-2004 02:09
select LIMIT 0,10 und trotzdem gesamt rows ohne limit anzeigen? westberlin SQL / Datenbanken 7 07-08-2003 09:39

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 20:12 Uhr.