Jump to content
php.lv forumi

order by no vairākām tabulām


yeahz

Recommended Posts

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

Link to comment
Share on other sites

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).

ro1b92vqsqd9a3jnyez.png

 

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...