<?
$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");
<?
$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?
$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");
$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.
<?php
$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");
<?php
$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?
- 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'