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, 19: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 21:54 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 11-09-2003, 21: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, 00:15
goth
  Moderator
Links : Onlinestatus : goth ist offline
Registriert seit: Mar 2002
Ort: Erde
Beiträge: 7.273
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, 03: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 03:31 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 12-09-2003, 04: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 04: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

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

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 23:11 Uhr.