INNER JOIN 2x in query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen

Jeroen

06/08/2006 00:41:00
Quote Anchor link
Topicnaam is wat misleidend. Ik denk dat dat de oplossing moet zijn maar kom er niet uit. Graag een duwtje in de goede richting.

Een berichten table met 2 verwijzings colums die refereren naar dezelfde user table. De output met 1 verwijzing krijg ik voor elkaar met INNER JOIN. (SELECT * FROM users INNER JOIN berichten ON berichten.ID_auteur=users.ID) Maar nu wil ik graag dat beide ID's 'vervangen' worden door de werkelijke naam uit de user table.

Here goes:

table berichten
Bericht - ID_Auteur - ID_Poster
Blabla - 1 - 2
BliBli - 2 - 3

table users
ID - UserName
1 - Jan
2 - Piet
3 - Klaas

Query reslutaat moet nu worden
Bericht - ID_Auteur - ID_Poster
Blabla - Jan - Piet
BliBli - Piet - Klaas

SELECT Bericht, ID_Auteur, ID_Poster
FROM users
INNER JOIN berichten ON berichten.ID_auteur=users.ID AND
berichten.ID_poster=users.ID

Resultaat is helaas nul rows.
 
PHP hulp

PHP hulp

17/11/2024 17:34:31
 
DeleteAll DeletelAll

DeleteAll DeletelAll

06/08/2006 00:46:00
Quote Anchor link
Snap niets van wat je bedoeld...
Kan ook gewoon zijn datk er niet genoeg vanaf weet :$!
Gewijzigd op 01/01/1970 01:00:00 door DeleteAll DeletelAll
 
K i p

K i p

06/08/2006 00:49:00
Quote Anchor link
in de ene tabel heb je een idnummer, maar dat wil hij dus eigenlijk 'vervangen' door de username die bij het id nummer hoort
 
DeleteAll DeletelAll

DeleteAll DeletelAll

06/08/2006 01:01:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$dbres
= mysql_query("SELECT ID_auteur,ID_poster FROM 'berichten'");
while($namen = mysql_fetch_object($dbres)) {
$id = $namen->ID_auteur;
}


$dbresselect = mysql_query("SELECT * FROM 'users' WHERE 'id' = $id");
while($namenselect = mysql_fetch_object($dbresselect)) {
$posternaam = $namenselect->name;
?>


Misschien een omslachtige manier, maar ben niet zo bedreven in MySQL. Dusja, ik probeer alleen maar te helpen...
Gewijzigd op 01/01/1970 01:00:00 door DeleteAll DeletelAll
 
Jeroen

Jeroen

06/08/2006 01:20:00
Quote Anchor link
Thx voor je reply Aymeric DL, maar daar snap ik dan weer geen bal van.

Mssn kan Boris er nog een keertje subtitles bij geven? ;-)
 
Johannes

Johannes

06/08/2006 02:18:00
Quote Anchor link
sorry hoor maar het kan aan mij liggen wil je nou waarden in je database veranderen of wil je ze er uit halen?? als je ze wilt veranderen zou ik eerst een aan een update beginnen dus

UPDATE tablename SET Kolom=waarde join 2detablename on tablename.waarde=2detablename.waarde

dus volgens mij krijg je dan zoiets als dit bijv.

UPDATE berichten SET ID_Auteur=UserName JOIN users ON berichten.ID_Auteur=users.ID

ik hoop dat dit je weer wat op weg geholpen heeft, het kan fout zijn want het is de eerste keer dat ik een JOIN gebruik en ik heb het niet getest.
 
Jan Koehoorn

Jan Koehoorn

06/08/2006 05:29:00
Quote Anchor link
@ Jeroen: je hebt geen JOIN nodig; het kan ook zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT
    b.bericht,
    u1.username AS auteur,
    u2.username AS poster
FROM berichten AS b, users AS u1, users AS u2
WHERE b.ID_auteur = u1.ID
AND b.ID_poster = u2.ID
 
Jeroen

Jeroen

06/08/2006 11:12:00
Quote Anchor link
Thx Jan dat is het. Ik moet idd aliasen aanmaken.

Was ondertussen wel een mooi stukje over JOIN tegengekomen. Misschien intressant voor anderen:

http://www.devshed.com/c/a/MySQL/Understanding-SQL-Joins/
 
Jasper

jasper

06/08/2006 12:02:00
Quote Anchor link
@jeroen,
Dank aan deze topic, ik los zoiets altijd op in meerde query's zoals Aymeric DL. maar zo kan het dus ook, en VEEL sneller!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.