senters Posted November 28, 2011 Report Share Posted November 28, 2011 Tabulas: event [id, .... user_id] favorite [id, event_id, user_id] Lietotājs ielogojas sistēmā un sadaļā "Mani pasākumi" tur rāda lietotāja pievienotos pasākumus ar SQL - http://screencast.com/t/XOPGrIyar.'>http://screencast.com/t/XOPGrIyar. Piemērā lietotāja (UID=13) pievienotie pasākumi. Tā, ka katru pasākumu pats lietotājs un citi var atzīmēt kā favorītu, tad tiek joinota klāt favorītu (favorite) tabula. Līdzīgi arī city un user tabula (bet tas nav šobrīd svarīgi). Piejoinojot favorite tabulu, ja lietotāja pasākumu izvēlējušies vairāki citi lietotāji, rindu skaits selektā dublēsies, jo favorītu tabulā ar attiecīgo favorite.event_id būs vairāki ieraksti. Man vajadzīgs lai tādā gadījumā paņemtu $_SESSION['uid'] jeb lietotāja ID, kurš ir ielogojies un kura pasākumi tie ir. Rakstu šādi, bet nestrādā: event.user_id = '".$_SESSION['uid']."' AND event.date_start >= '".$today_date."' AND (favorite.user_id = '".$_SESSION['uid']."' OR favorite.user_id IS NULL) Šajā gadījumā http://screencast.com/t/XOPGrIyar vajag, lai tiek paņemts no apvilktām rindām, tā kur favorite_user_id = 13. Link to comment Share on other sites More sharing options...
l27 Posted November 28, 2011 Report Share Posted November 28, 2011 Taisi divus selectus, kurus apveino ar union: - vienu no tabulas event - otru no tabulas favorit Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 28, 2011 Report Share Posted November 28, 2011 LEFT JOIN favorite ON (event.id = favorite.event_id AND favorite.user_id = <nepieciešamais lietotāja id>) Gints Plivna http://datubazes.wordpress.com Link to comment Share on other sites More sharing options...
senters Posted November 28, 2011 Author Report Share Posted November 28, 2011 Taisīju ar 2 selektiem un sanāca vajadzīgais - http://screencast.com/t/EvuoeDYtcUz Link to comment Share on other sites More sharing options...
xPtv45z Posted November 29, 2011 Report Share Posted November 29, 2011 Vispār jau tev tur nav 2 selekti, ja tur atlasīs 1000 eventus, tad būs 1000 un 1 selekts. Link to comment Share on other sites More sharing options...
Recommended Posts