Gints Plivna Posted November 13, 2010 Report Share Posted November 13, 2010 Ak dies :S Jautājums - Tu saproti, ko nozīmē savienojumi (join)? Ja ne, tad palasi kaut vai šeit. Tālāk balstoties uz to info paskaties uz šo piemēru un mēģini saprast no kādām trīs daļām tiek veikts šis savienojums. Tālāk es Tev iepriekšējā postā saku, ka šim pēdējam uzdevumam Tev ir jāizmanto tā pati tehnika vai ideja, kas izmantota šai piemērā, tikai jāņem otrā un trešā savienojuma daļa. Tālāk es saku, ka vajag uztaisīt savienojumu ar sevis paša tabulu, tas nenozīmē, ka jātaisa jauna tabula, tas nozīmē, ka jātaisa pašsavienojums (self join), kur tā pati tabula, jeb izteiksme no tās ir vienkārši jāizmanto 2 reizes. Es, protams, varētu šo SQL teikumu uzrakstīt bez problēmām, bet labāk pamēģini pats to izdarīt. Gints Plivna http://datubazes.wordpress.com Quote Link to comment Share on other sites More sharing options...
yeahz Posted November 14, 2010 Author Report Share Posted November 14, 2010 Piedod, bet nu nesaprotu es to, ko tu gribi no manis, es gribu tikai lai kāds palīdz man izvilkt pirmās rindas, tas ir viss ko man vajag. Rekur ir sql: SELECT g.id AS g_id, g.name, g.picture, t.title, t.time AS t_time, t.owner AS t_owner, p.owner AS p_owner, p.time AS p_time FROM groups g LEFT JOIN topics t ON g.id=t.group_id LEFT JOIN posts p ON t.id=p.topic_id WHERE category=1 ORDER BY CASE WHEN (p.time IS NOT NULL AND p.time>t.time) THEN p.time ELSE t.time END DESC un rekur ir rezultāts no sql + ar sarkano apvilktās rindas, kuras man vajadzīgas (vajadzīgas ir tās rindas kur starp katru g.id ir lielākais laiks). PS nebēdā, diezvai es iešu strādāt par programmētāju, tas viss ir tikai priekš sevis. Pagadījās, ka vajag tādu pagrūtāku sql teikumu sarakstīt. Quote Link to comment Share on other sites More sharing options...
Gints Plivna Posted November 14, 2010 Report Share Posted November 14, 2010 Nē nu gribēt nevienam nav aizliegts, es, piemēram, gribu Ferrari, tikai neviens nedod :) Ja par programmētāju neiesi strādāt un mācīties arī negribas, tad iespējams vajag sameklēt kādu, kas Tev to izdara, nu tikai sagatavo kādu $$ pirms tam ;) Gints Plivna http://datubazes.wordpress.com Quote Link to comment Share on other sites More sharing options...
mickys Posted November 15, 2010 Report Share Posted November 15, 2010 SELECT * FROM `galerijas` LEFT JOIN `bildes` ON bildes.galerijas_id=galerijas.id GROUP BY `galerijas`.`id` ORDER BY `bildes`.`id` ASC Just my 25 cents Man ir šādi, paskaties ideju un iespējams varēsi pielāgot sev... Atgriež tikai katrai galerijai pa vienam ierakstam, un papildus viena bilde ar mazāko ID katrai galerijai Tev attiecīgi GROUP BY name ORDER BY time DESC Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.