SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Download

{fusion sql_veld}

31 maart

Alle versies van dit artikel:


De voorwaarde fusion maakt de hergroepering van de resultaten van een lus tot één specifieke waarde mogelijk.

Waar de resultaten van een lus zonder {fusion sql_veld} meerdere elementen retourneert met eenzelfde waarde voor sql_veld, zal de lus met de voorwaarde {fusion sql_veld} slechts één resultaat retourneren.

Hiervoor bevat de gegenereerde SQL query de instructie GROUP BY.

Een "pedagogisch" voorbeeld

De volgende lus toont de titel van alle gepubliceerde artikelen van de site:

  1. <BOUCLE_alles(ARTICLES)>
  2. #TITRE
  3. </BOUCLE_alles>

De volgende lus, met een voorwaarde fusion op de identificatie van de rubriek, seecteert dezelfde artikelen, maar doet een hergroepering per identieke rubriek en toont slechts één artikel per rubriek:

  1. <BOUCLE_extract(ARTICLES){fusion id_rubrique}>
  2. #TITRE
  3. </BOUCLE_extract>

Praktische voorbeelden

De volgnde lus toont de 1 meest recente forumberichten, gesorteerd op datum, maar met een verschillend IP-adres:

  1. <BOUCLE_comment(FORUMS){plat}{par date}{inverse}{0,10}{fusion ip}>
  2.        <INCLURE{fond=inc/intro_commentaar}{id_forum}>
  3. </BOUCLE_comment>

Je kunt ook als parameter gebruik maken van SQL expressies. De volgende lus toont een lijst van jaartallen waarvoor ten minste één artikel bestaat:

  1. <BOUCLE_jaar_met_art(ARTICLES){par date}{inverse}{fusion YEAR(date)}>
  2.         [(#DATE|annee)]
  3. </BOUCLE_jaar_met_art>

Een bijdrage toont hoe je deze voorwaarde kunt gebruiken om artikelen weer te geven per jaar en vervolgens per maand. Kilik hier.

Meerdere kolommen

Het is mogelijk om de resultaten over meerdere kolommen te verdelen, door meerdere keren de voorwaarde te gebruiken, bijvoorbeeld {fusion xx}{fusion yy}, wat in de SQL query zal resulteren in GROUP BY xx,yy.

Let op

Een sorteervoorwaarde {par xxx} gecombineerd met de voorwaarde {fusion sql_veld} resulteert niet zondermeer het verwachte resultaat.

-  <BOUCLE_a1(ARTICLES){tout}{par id_article}>
geeft de artikelen terug gesorteerd op id_article (bijvoorbeeld van 1 tot 1000).

-  <BOUCLE_a2(ARTICLES){par id_article}{fusion id_rubrique}>
geeft de artikelen terug gesorteerd op id_article na hergroepering op id_rubrique, maar deze hergroepringen worden zonder specifieke sortering gedaan!

Lees ook

-  de voorwaarde {doublons}
-  het filter |unique}


Het skelet van deze bladzijde zien Site gebouwd met SPIP | Vertaalruimte | Privé-site