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 25-03-2005, 13:06
Reklavit
 Newbie
Links : Onlinestatus : Reklavit ist offline
Registriert seit: Mar 2005
Beiträge: 12
Reklavit ist zur Zeit noch ein unbeschriebenes Blatt
Standard Sortierung nach Anzahl der Vorkommen

Moin,

nehmen wir an, ich habe zwei Tabellen (threads und antworten) mit jeweils einer interessanten Spalte:

threads.id | antworten.thread
und die Zeilen:
1|1
2|1
3|2
4|1
5|2
6|4
7|3
8|2
9|2

So, die 1 kommt drei mal vor, 2 kommt vier mal vor und 3 & 4 weniger.
Ich möchte jetzt diese Liste bekommen, sodass per Häufigkeit sortiert wird:
2
1
3
4

Sprich: Gebe den Inhalt der Spalte 'thread' nach Häufigkeit (DESC) wieder.
Geht das mit einer Abfrage?

Mein Versuch bisher:
PHP-Code:
mysql_query("SELECT * FROM threads JOIN antworten, COUNT(*) AS thread
FROM antworten
GROUP BY id
ORDER BY antworten.thread DESC"
); 
Danke im Vorraus.
Mit Zitat antworten
  #2 (permalink)  
Alt 25-03-2005, 15:17
DaGuertliz
 Registrierter Benutzer
Links : Onlinestatus : DaGuertliz ist offline
Registriert seit: Nov 2003
Ort: Kiel
Beiträge: 304
DaGuertliz ist zur Zeit noch ein unbeschriebenes Blatt
DaGuertliz eine Nachricht über ICQ schicken
Standard

Da fehlt das Argument, anhand dessen Du joinst ?!?
__________________
Yeah !
Mit Zitat antworten
  #3 (permalink)  
Alt 25-03-2005, 17:30
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.134
Quetschi wird schon bald berühmt werden
Standard

ääähmm....

bewirkt diese Abfrage bis jetzt denn mehr als nur einen Fehler zu produzieren??

nach FROM nochmal eine ergebnisspalte zu definieren ist mir zumindest neu... und auch dass da dann nochmal ein FROM daherkommt

Edit:
und natürlich dann noch das was vor mir gepostet wurde: Join erstmal erklären anhand von was es denn joinen soll...

Geändert von Quetschi (25-03-2005 um 17:34 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 25-03-2005, 18:53
Reklavit
 Newbie
Links : Onlinestatus : Reklavit ist offline
Registriert seit: Mar 2005
Beiträge: 12
Reklavit ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke schonmal für die Antworten.

Naja, JOINen soll er ja die Tabelle antworten und wie man das zweite FROM richtig schreibt, weiß ich leider trotz Recherche nicht.
Mit Zitat antworten
  #5 (permalink)  
Alt 25-03-2005, 19:06
DaGuertliz
 Registrierter Benutzer
Links : Onlinestatus : DaGuertliz ist offline
Registriert seit: Nov 2003
Ort: Kiel
Beiträge: 304
DaGuertliz ist zur Zeit noch ein unbeschriebenes Blatt
DaGuertliz eine Nachricht über ICQ schicken
Standard

Gibt es denn in der einen Tabelle einen Primary und in der anderen einen secondary key, auf den Du Dich referenziell beziehen kannst ?

Poste mal Deine Tabellenstruktur und schrieb hinter Deine Abfrage "or die (mysql_error());"
__________________
Yeah !
Mit Zitat antworten
  #6 (permalink)  
Alt 25-03-2005, 22:49
Reklavit
 Newbie
Links : Onlinestatus : Reklavit ist offline
Registriert seit: Mar 2005
Beiträge: 12
Reklavit ist zur Zeit noch ein unbeschriebenes Blatt
Standard

threads
- id

antworten
- id
- thread


Meine Abfragenerrormeldung bemängelt ja nur die 'grammatikalische' Struktur meiner Abfrage, weil mir die Umsetzung ja unbekannt ist. Mehr sagt mir mysql_error() da nicht.

Zitat:
Gibt es denn in der einen Tabelle einen Primary und in der anderen einen secondary key, auf den Du Dich referenziell beziehen kannst ?
Hm, verstehe ich leider schon nicht mehr.

------------

Zitat:
threads.id | antworten.thread
und die Zeilen:
1|1
2|1
3|2
4|1
5|2
6|4
7|3
8|2
9|2

So, die 1 kommt drei mal vor, 2 kommt vier mal vor und 3 & 4 weniger.
Ich möchte jetzt diese Liste bekommen, sodass per Häufigkeit sortiert wird:
2
1
3
4
Mit Zitat antworten
  #7 (permalink)  
Alt 25-03-2005, 22: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

Code:
SELECT
    t.name,
    COUNT(a.thread) AS thread_sum
FROM
    threads t
        INNER JOIN antworten a ON ( a.thread = t.id )
GROUP BY
    t.name
ORDER BY
    a.thread_sum DESC
__________________
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 26-03-2005, 01:00
Reklavit
 Newbie
Links : Onlinestatus : Reklavit ist offline
Registriert seit: Mar 2005
Beiträge: 12
Reklavit ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Super, danke.

Wofür ist t.name ? Erkennt meine DB auch nicht.

Nebenbei habe ich es an meine deutschen Tabellentitel und Spalten angepasst, ich sollte also damit nur die Namen verändert haben.
Code:
SELECT
    t.name,
    COUNT(a.thread) AS themen_sum
FROM
    forum_themen t
        INNER JOIN forum_antworten a ON ( a.thema= t.id )
GROUP BY
    t.name
ORDER BY
    a.themen_sum DESC
Mit Zitat antworten
  #9 (permalink)  
Alt 26-03-2005, 10:02
DaGuertliz
 Registrierter Benutzer
Links : Onlinestatus : DaGuertliz ist offline
Registriert seit: Nov 2003
Ort: Kiel
Beiträge: 304
DaGuertliz ist zur Zeit noch ein unbeschriebenes Blatt
DaGuertliz eine Nachricht über ICQ schicken
Standard

Zitat:
Wofür ist t.name ? Erkennt meine DB auch nicht.
Streiche t.name setze t.id
__________________
Yeah !
Mit Zitat antworten
  #10 (permalink)  
Alt 26-03-2005, 11:33
Reklavit
 Newbie
Links : Onlinestatus : Reklavit ist offline
Registriert seit: Mar 2005
Beiträge: 12
Reklavit ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, und ORDER BY thread_sum muss es ja sein.

Klasse, es funktioniert. Jetzt habe ich Spaß damit.
Mit Zitat antworten
  #11 (permalink)  
Alt 26-03-2005, 14:21
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

Zitat:
Original geschrieben von Reklavit
Wofür ist t.name ?
das ist dafür, dass du auch den namen des threads bekommst.

wenn das feld nicht name ist , nimm halt den richtigen spaltennamen dafür
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #12 (permalink)  
Alt 26-03-2005, 15:29
Reklavit
 Newbie
Links : Onlinestatus : Reklavit ist offline
Registriert seit: Mar 2005
Beiträge: 12
Reklavit ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, jetzt habe ich's verstanden.
Mit Zitat antworten
Antwort

Lesezeichen


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

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

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

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


 

Aktuelle PHP Scripte

kostenloser PHP-Editor Codelobster ansehen kostenloser PHP-Editor Codelobster

Kostenloser PHP, HTML, CSS, JavaScript editor (IDE) - Codelobster PHP Edition

13.03.2019 Berni | Kategorie: PHP ENTWICKLUNGSUMGEBUNG
Lazy Load Plugin für jQuery

Das Lazyload Plugin, lädt Bilder nach, wenn sie im Viewport sichtbar werden.

10.03.2019 phpler | Kategorie: JQUERY-PLUGINS
WeltExplorer v1.0

WeltExplorer v1.0 ist ein Dateimanager zum Browsen und Operieren im Dateisystem. Bei installiertem cURL können Ordner und Dateien zu entfernten FTP-Servern hochgeladen bzw. von diesen heruntergeladen werden, etwa zum Erstellen von Backups oder Mirrorsites

06.02.2019 weltvolk | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:39 Uhr.