webForumDet fria alternativet

strulig select

1 svar · 156 visningar · startad av K@llen

K@llenMedlem sedan mars 20032 667 inlägg
#1

Hmmm, jag fick ett följdproblem som uppkom efter lösningen på problemet i tråden "2 frågor -> 1". Nu när jag flyttade lite meddelanden då såg jag att min andra sql-fråga som hämtar meddelandena från mappen inte fungerade. Problemet är att jag även får ut dubletten, dvs om jag skickar ett pm till dig och sparar en kopia i min mapp skickat, då delar vi på samma meddelande så att säga. Men ditt ligger i inkorgon och mitt i Skickat. Flyttar jag då mitt från skickat (med sql-frågan i tråden ovan) till en annan mapp, och sedan hämtar meddelandena i min mapp, då får jag fram både ditt och mitt meddelande.

Jag anger egentligen alla fältnamn specifikt, men för att korta frågan har jag ersatt dem med * här i inlägget.

$sql = "SELECT *                  
FROM pm, pm_mess, users                
WHERE pm_mess.currentMessId = pm.messId                
AND ( pm.fromUid = users.uId OR pm.toId = users.uId )	 
AND ((pm.toDeleted = 0 AND pm.toUid = " . $_SESSION['uid'] . " ) 
OR (pm.fromDeleted = 0 AND pm.fromUid = " . $_SESSION['uid'] . " )) 	
AND (( pm.fromFolder = $fId AND pm.fromUid = " . $_SESSION['uid'] . " ) 
OR ( pm.toUid = " . $_SESSION['uid']  . " AND pm.toFolder = $fId ))";
K@llenMedlem sedan mars 20032 667 inlägg
#2

Jag tror jag löst det:

SELECT pm.*, pm_mess.*, users.*  
FROM pm, pm_mess, users
WHERE pm_mess.currentMessId = pm.messId
AND ( pm.fromUid = users.uId OR pm.fromUid = users.uId ) 
AND ( pm.toFolder = $fId OR pm.fromFolder = $fId )
AND ( ( pm.toUid = " . $_SESSION['uid']  . " AND pm.toDeleted = 0 ) OR ( pm.fromDeleted = 0 AND pm.fromUid = " . $_SESSION['uid']  . " ) )
132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)