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 11-09-2003, 20:55
JoelH
 Registrierter Benutzer
Links : Onlinestatus : JoelH ist offline
Registriert seit: Jul 2001
Beiträge: 2.740
JoelH ist zur Zeit noch ein unbeschriebenes Blatt
Standard Der join dein Feind, wie verbinde ich diese beiden Query ?

Code:
SELECT  tb.fid,
        tb.tid,
        tb.topicname,
        tb.erstellerid,
        tb.helped,
        tb.state,
        us.pseudonym,
        tb.hits

FROM    topics tb,
        user us
        
WHERE   fid=".$forum." AND
        tb.erstellerid = us.erstellerid
und

PHP-Code:
$query "SELECT    DISTINCT tid
          FROM      topicbeitraege
          WHERE     fid = "
.$forum."
          ORDER BY  eid DESC LIMIT "
.(($zeigeseite-1)*20).",20"); 
Der zweite gibt mir die tid 's die ich haben will, diese will ich von den anderen beiden Tabellen dann mit Daten füllen lassen. Klar was ich meine ?


EDIT:
umbrüche by Abraxax

Geändert von Abraxax (11-09-2003 um 22:54 Uhr)
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 11-09-2003, 22:57
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

zuerst einmal habe ich deine 1. query verJOINt ...

Code:
SELECT  tb.fid,
        tb.tid,
        tb.topicname,
        tb.erstellerid,
        tb.helped,
        tb.state,
        us.pseudonym,
        tb.hits

FROM    topics tb
            LEFT JOIN user us USING(erstellerid)
        
WHERE   fid=".$forum
was hast du mit der 2. query vor? meine glaskugel wird gerade gereinigt.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #3 (permalink)  
Alt 12-09-2003, 01:15
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.278
goth ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Code:
SELECT tb.fid, tb.tid, tb.topicname, tb.erstellerid, tb.helped, tb.state, us.pseudonym, tb.hits, b.*
  FROM topics tb
  LEFT JOIN user us
    ON tb.erstellerid = us.erstellerid
  LEFT JOIN topicbeitraege b
    ON tb.fid = b.fid
   AND tb.tid = b.tid
 WHERE tb.fid=$forum
Willst Du zum Beispiel Beiträge zählen, probier' sowas:

Code:
SELECT tb.fid, tb.tid, tb.topicname, tb.erstellerid, tb.helped, tb.state, us.pseudonym, tb.hits, COUNT(b.tid) counted
  FROM topics tb
  LEFT JOIN user us
    ON tb.erstellerid = us.erstellerid
  LEFT JOIN topicbeitraege b
    ON tb.fid = b.fid
   AND tb.tid = b.tid
 WHERE tb.fid=$forum
 GROUP BY tb.fid, tb.tid, tb.topicname, tb.erstellerid, tb.helped, tb.state, us.pseudonym, tb.hits
__________________
carpe noctem

Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht!
Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung!
Mit Zitat antworten
  #4 (permalink)  
Alt 12-09-2003, 04:21
JoelH
 Registrierter Benutzer
Links : Onlinestatus : JoelH ist offline
Registriert seit: Jul 2001
Beiträge: 2.740
JoelH ist zur Zeit noch ein unbeschriebenes Blatt
Standard [MySQL 4.0] hmm,

@Abraxax
was ich vor habe ?

Ganz einfach ich möchte den ersten Query nach dem zweiten sortiert auslesen.
Sprich nach der tid , diese soll allerdings nach der topicbeitraege.eid sortiert sein.

@goth
Der erste ist schon rech gut, hab ihn dahin erweitert
Code:
SELECT tb.fid, tb.tid, tb.topicname, tb.erstellerid, tb.helped, tb.state, us.pseudonym, tb.hits, b. * 
FROM topics tb
LEFT  JOIN user us ON tb.erstellerid = us.erstellerid
LEFT  JOIN topicbeitraege b ON tb.fid = b.fid AND tb.tid = b.tid
WHERE tb.fid = 4
ORDER BY b.eid DESC
jetzt fehlt mir nur noch das DISTINCT des zweiten Querys da drin, weil so bekomm ich alle Topics ausgegeben, ich brauche aber immer nur einen und zwar den mit der höchsten topicbeitraege.eid .

Geändert von JoelH (12-09-2003 um 04:31 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 12-09-2003, 05:54
JoelH
 Registrierter Benutzer
Links : Onlinestatus : JoelH ist offline
Registriert seit: Jul 2001
Beiträge: 2.740
JoelH ist zur Zeit noch ein unbeschriebenes Blatt
Standard [MySQL 4.0] hmm,

noch ein wenig probiert aber irgendwie wird das nix
Ich hab jetzt
Code:
SELECT  b.tid, b.eid, tb.fid, tb.tid, tb.topicname, tb.erstellerid, tb.helped, tb.state, us.pseudonym, tb.hits
FROM topicbeitraege b
LEFT  JOIN topics tb ON tb.fid = b.fid AND tb.tid = b.tid
LEFT  JOIN user us ON tb.erstellerid = us.erstellerid
WHERE b.fid = 4
ORDER  BY b.eid DESC
Der ist sogar 9 sec. schneller als der andere bringt das selbe Ergebnis, leider immer noch das Falsche

Er gibt zuviel zurück

Ich bekomme jetzt
sowas

tid | eid | ........
120 | 800 | ...
120 | 798 | ....
120 | 796 | ...
112 | 795 | ....
118 | 791 | ....

ich hätte aber gerne nur

tid | eid | ........
120 | 800 | ...
112 | 795 | ....
118 | 791 | ....

also lasse ich das b.eid im SELECT weg bekomme dann aber leider nur

tid | ........
120 | ...
118 | ....
112 | ....


das ist falsch sortiert Er sortiert dann nimmer nach der eid sondern wieder nach der tid Warum ?

PS:
@goth
Dein zweiter Query ist auch nicht schlecht Ja ich will auch mitcounten
Code:
SELECT tb.fid, tb.tid, tb.topicname, tb.erstellerid, tb.helped, tb.state, us.pseudonym, tb.hits, COUNT(b.tid) counted
  FROM topics tb
  LEFT JOIN user us
    ON tb.erstellerid = us.erstellerid
  LEFT JOIN topicbeitraege b
    ON tb.fid = b.fid
   AND tb.tid = b.tid
 WHERE tb.fid=4
 GROUP BY tb.fid, tb.tid, tb.topicname, tb.erstellerid, tb.helped, tb.state, us.pseudonym, tb.hits
ORDER BY b.eid DESC
Wieder sortiert nach der b.eid DESC leider auch hier das selbe Problem, er ignoriert einfach das ORDER BY

Geändert von JoelH (12-09-2003 um 05:59 Uhr)
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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

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


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

21.10.2020 Berni | Kategorie: PHP/ Anzeigenmarkt
Sendeplan Script inkl. Wunsch- und Grußbox + Kick-System + Bewerbungssystem

Das professionelle Sendeplan PHP Script inkl. Wunsch- und Grußbox + Kick-System für dein Webradio. Der übersichtliche Sendeplan bietet deinen Moderatoren und Zuhörern die perfekte Übersicht der aktuellen Shows! Du kannst nicht nur Sendungen eintragen, s

20.10.2020 drcomputer | Kategorie: PHP/ Web Radio
Newsmanager 2

Der Newsmanager 2 ist sehr Vielfältig und kann News schreiben, Newsletter versenden und RSS Feeds in einem erzeugen.

20.10.2020 Stephan_1972 | Kategorie: PHP/ News
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:56 Uhr.