login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Lange MySQL query

Offline Frederic - 19/09/2005 17:58
Avatar van FredericPHP ver gevorderde Via volgende query haal ik de resultaten op van mijn forumlijst:
  1. <?
  2. $sql = mysql_query("SELECT leden.gebruikersnaam, leden.id AS ledenid, forum_topic.*, forum_topic.id AS topicid, forum_categorie.id AS categorieid, forum_categorie.naam AS categorienaam FROM leden, forum_topic, forum_categorie WHERE forum_topic.lid = leden.id AND forum_topic.categorie = forum_categorie.id ORDER BY laatste_bericht DESC LIMIT 0,35");

Dat werkt allemaal (het gaan voornamelijk over de gebruikersnaam), want de forum_topic.lid wordt gelinkt aan leden.id en ik krijg mooi de gebruikersnaam terug.
Nu, ik heb ook nog een veld laatste_bericht_door, wat eveneens (net zoals forum_topic_lid een ID bevat van een gebruikt) een ID bevat, en ook hiervan zou ik graag de gebruikersnaam kennen. Is dit mogelijk in 1 query, aangezien ik dan eerst moet kijken naar het id voor forum_topic.lid (en dan de gebruikersnaam ophalen) en dan hetzelfde voor forum_topic.laatste_bericht_door?

4 antwoorden

Gesponsorde links
Offline Frisbee - 19/09/2005 18:08
Avatar van Frisbee HTML beginner ja dat kan dat moet je zo doen:
  1. $sql = mysql_query("SELECT leden1.gebruikersnaam AS gebruikersnaam1, leden2.gebruikersnaam AS gebruikersnaam2, leden1.id AS ledenid1, leden2.id AS ledenid2, forum_topic.*, forum_topic.id AS topicid, forum_categorie.id AS categorieid, forum_categorie.naam AS categorienaam FROM leden AS leden1, leden AS leden2, forum_topic, forum_categorie WHERE forum_topic.lid = leden1.id AND forum_topic.laatste_bericht_door = leden2.id AND forum_topic.categorie = forum_categorie.id ORDER BY laatste_bericht DESC LIMIT 0,35");


ik heb hem uit m'n hoofd gedaan maar zoiets zal het moeten zijn denk ik. weet niet of er ook nog een makkelijkere manier is.
Offline Frederic - 19/09/2005 18:17 (laatste wijziging 19/09/2005 18:46)
Avatar van Frederic PHP ver gevorderde Dat gaan we straks eens even testen 
Deze heb ik nu
  1. <?php
  2. $sql = mysql_query("SELECT leden_start.gebruikersnaam AS gebruikersnaam_start, leden_start.id AS ledenid_start, leden_laatste.gebruikersnaam AS gebruikersnaam_laatste, leden_laatste.id AS ledenid_laatste, forum_topic.*, forum_topic.id AS topicid, forum_categorie.id AS categorieid, forum_categorie.naam AS categorienaam FROM leden AS leden_start, leden AS leden_laatste, forum_topic, forum_categorie WHERE forum_topic.lid = leden_start.id AND forum_topic.categorie = forum_categorie.id AND forum_topic.laatste_bericht_door = leden_laatste.id ORDER BY laatste_bericht DESC LIMIT 0,35");

Vreemd, als ik deze query run wordt mijn site ineens supertraag en is ie enkele minuten zo. Zit er een fout in het bovenste script?
Offline bosgroen - 20/09/2005 01:54 (laatste wijziging 20/09/2005 01:56)
Avatar van bosgroen Gouden medaille

PHP interesse
- FROM leden AS leden1, leden AS leden2, forum_topic, forum_categorie
hmm, gebruik jij nu 2x dezelfde tabel (leden)?

als ik met meerdere tabellen werk, kort ik vaak de tabelnamen af
- FROM leden as l, forum_topics as ft, forum_categorie as fc
dan zijn jouw kolomnamen korter: SELECT l.gebruikersnaam, l.id,...
enkel als er problemen dreigen met dubbele benamingen geef ik een nieuwe naam aan een kolom met 'as'
Offline Frederic - 20/09/2005 08:32
Avatar van Frederic PHP ver gevorderde @ne hele bos groen:
ik moet die wel 2x gebruiken he, want kijk eens naar de where! maar de query werkt, alleen verschrikkelijk traag 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.217s