Avatar billede Slettet bruger
08. oktober 2006 - 18:33 Der er 6 kommentarer

En Left join der skal udvides, til at hente afsender+modtager

Hej eksperter.
Jeg kan ikke lige se hvordan jeg skal skrue mit udtræk sammen.
Har lavet en slags intranet, og når brugerne så skal sende beskeder til hinanden, vil jeg hive brugernavnet med ud, både på afsender men også på modtageren.

Mit udtræk lige nu:
SELECT users.usrname, users.usrsex, message.msgID, message.usrID, message.prvID, message.message
FROM log
LEFT JOIN users ON message.usrID = users.usrID
AND (prvID = '".$_GET['myid']."' OR prvID = '0');";

Som default er prvID = 0, som er privateID.

Men hvordan skal mit kald så se ud?
Avatar billede tolveren Nybegynder
08. oktober 2006 - 18:41 #1
i stedet for LEFT JOIN, kan du så ikke bare skrive WHERE
Avatar billede Slettet bruger
08. oktober 2006 - 19:41 #2
Ups her hele mit udtræk:
$search_msg_sql = "SELECT users.usrname, users.usrsex, message.msgID, message.usrID, message.prvID, message.message
                    FROM log
                    LEFT JOIN users ON message.usrID = users.usrID
                    WHERE msgID > ".$_GET['getlastid']."
                    AND message.usrID != '".$_GET['myid']."'
                    AND (prvID = '".$_GET['myid']."' OR prvID = '0');";
Avatar billede kjulius Novice
09. oktober 2006 - 00:25 #3
Jeg er ærlig talt lidt forvirret. Du refererer flere gange til en tabel, der hedder message, men den eneste tabel ud over users, du har med i din FROM sætning er log.

Det er heller ikke helt indlysende hvad dit problem er. Hvad ønsker du at få ud, og hvad får du ud med den viste forespørgsel?
Avatar billede Slettet bruger
09. oktober 2006 - 10:44 #4
Jamen det er fordi jeg har skiftet navn på den fra log => message.
Lige nu får jeg følgende data ud:
usrname(brugernavn(for afsender)), usrsex(køn), msgID(besked id), usrID(afsender id), prvID(privat id - modtageren af beskeden -> default 0, så skrives der til alle), og message(selve beskeden).

Men hvis prvID ikke er ligmed 0, vil jeg hive brugernavnet ud på modtageren også. (altså på en eller anden måde ud fra prvID)
Avatar billede kjulius Novice
09. oktober 2006 - 22:10 #5
Hvis man kan gå ud fra, at både afsender og modtager skal findes i users, så kan følgende måske løse problemet:

$search_msg_sql = "SELECT fra.usrname, fra.usrsex, til.usrname, til.usrsex, message.msgID, message.usrID, message.prvID, message.message
                    FROM message
                    LEFT JOIN users fra ON message.usrID = fra.usrID
                    LEFT JOIN users til ON message.prvID = til.usrID
                    WHERE msgID > ".$_GET['getlastid']."
                    AND message.usrID != '".$_GET['myid']."'
                    AND (prvID = '".$_GET['myid']."' OR prvID = '0');";
Avatar billede Slettet bruger
09. oktober 2006 - 22:26 #6
Prøver
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester