anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Fr 18 Jul, 2025 07:35

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So 15 Jan, 2006 14:56 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
Also, mit
$this->bbcode_second_pass_code('', 'SELECT gilden.*, accounts.name AS leadername FROM gilden INNER JOIN accounts ON accounts.acctid=gilden.leader')
kann ich alles aus der gildentabelle und den Namen des Anführers laden.

Mit
$this->bbcode_second_pass_code('', 'SELECT gilden.*, count(accounts.acctid) AS members FROM gilden LEFT JOIN accounts ON accounts.gilde=gilden.id GROUP BY gilden.id')
kann ich alles aus der GIldentablle und die Anzahl der MItglieder laden.


Jetzt meine Frage, is es möglich beides in einer sql-Abfrage zu schreiben, oder muss ich eine von beiden asuführen und die andere information mit $this->bbcode_second_pass_code('', 'SELECT count(acctid) AS members FROM accounts WHERE gilde='{ID der Gilde}'') laden.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 15 Jan, 2006 15:08 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Sorry, aber ich versteh ehrlich nicht gesagt genau wo dein Prob darin besteht. Schreibe einmal die Tabellen auf die du abfragen möchtest. Dann ist es wesentlich einfacher


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 15 Jan, 2006 15:17 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
$this->bbcode_second_pass_code('', 'SELECT gilden.*, a1.name AS leadername, count(a2.acctid) AS members
FROM gilden
LEFT JOIN accounts a1 ON a1.acctid=gilden.leader
LEFT JOIN accounts a2 ON a2.gilde=gilden.id
GROUP BY gilden.id
')
Ich würde aber dringend empfehlen, das ganze entsprechend Deinem Vorschlag in zwei Abfragen zu unterteilen, da ein GROUP BY immer erst nach der Abfrage ausgeführt wird und somit Unmengen überflüssiger Daten gelesen würden, was im Endeffekt weitaus langsamer ist.

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 15 Jan, 2006 15:39 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
Chaosmaker hat geschrieben:
$this->bbcode_second_pass_code('', 'SELECT gilden.*, a1.name AS leadername, count(a2.acctid) AS members
FROM gilden
LEFT JOIN accounts a1 ON a1.acctid=gilden.leader
LEFT JOIN accounts a2 ON a2.gilde=gilden.id
GROUP BY gilden.id
')
Ich würde aber dringend empfehlen, das ganze entsprechend Deinem Vorschlag in zwei Abfragen zu unterteilen, da ein GROUP BY immer erst nach der Abfrage ausgeführt wird und somit Unmengen überflüssiger Daten gelesen würden, was im Endeffekt weitaus langsamer ist.


Hm.. ok, danke^^
dann lass ichs wohl so, wenn so schenller ist.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum