<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: GloiMir</title>
    <description>The latest articles on DEV Community by GloiMir (@gloimir).</description>
    <link>https://dev.to/gloimir</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F912914%2F39a758bf-0193-4dc9-adda-c0bda5e7774d.jpg</url>
      <title>DEV Community: GloiMir</title>
      <link>https://dev.to/gloimir</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gloimir"/>
    <language>en</language>
    <item>
      <title>Simple pomodoro avec Html, CSS et Javascript</title>
      <dc:creator>GloiMir</dc:creator>
      <pubDate>Fri, 16 Dec 2022 12:19:29 +0000</pubDate>
      <link>https://dev.to/gloimir/simple-pomodoro-avec-html-css-et-javascript-470h</link>
      <guid>https://dev.to/gloimir/simple-pomodoro-avec-html-css-et-javascript-470h</guid>
      <description>&lt;p&gt;Dans le présent article, je vais créer un compteur à rebours.&lt;br&gt;
Mon compteur est double en ce sens qu'il passe sans transition de la séance de travail à la séance de repos.&lt;br&gt;
Le période initiale de travail est de 25 minutes et celle de repos est de 5 minutes.&lt;/p&gt;

&lt;p&gt;L’interface utilisateur du projet est composé de 3 grandes parties; l'afficheur, la barre de progression et les boutons de commande&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XaxuWhF4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/buesw3boglb92vrbzbyy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XaxuWhF4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/buesw3boglb92vrbzbyy.png" alt="Image description" width="880" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L'AFFICHEUR&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HApSCKJh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/48x1k81x470x1bx4dn2p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HApSCKJh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/48x1k81x470x1bx4dn2p.png" alt="Image description" width="444" height="148"&gt;&lt;/a&gt;&lt;br&gt;
Il s'agit de cette partie supérieure de l'application; c'est ici qu'est signalé dans quelle séance on est(travail ou repos) et c'est ici qu'est signalé le temps restant pour la séance en cours(minutes et secondes)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;html&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div id="afficheContainer"&amp;gt;
    &amp;lt;span id="titre"&amp;gt;WORK SESSION&amp;lt;/span&amp;gt;
    &amp;lt;span id="afficheur"&amp;gt;25 : 00&amp;lt;/span&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;css&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#afficheContainer{
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
    background-color: black;
    border-radius: 10px;
    padding: 5px;
}
#titre{
    font-weight: bold;
    opacity: 1;
    font-size: large;
    color:  #1E90FF;
}
#afficheur{
    font-weight: bold;
    opacity: 1;
    color:  #1E90FF;
    font-size: large;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;javascript&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//Les variables du titre et chrono
let titre = document.getElementById("titre")
let afficheur = document.getElementById("afficheur")
//Texte du tire, sa couleur et la couleur du chrono selon la séance à laquelle nous sommes 
titre.innerText = 'WORK SESSION'
titre.style.color =     '#1E90FF' 
afficheur.style.color = "#1E90FF" 
//Affichage du temps restant pour la séance dans le chrono
afficheur.innerText = `${workSession} : ${seconde}`

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;LA BARRE DE PROGRESSION&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iR6neOKp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b07z07c2r5ljgzsn9cqc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iR6neOKp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b07z07c2r5ljgzsn9cqc.png" alt="Image description" width="358" height="267"&gt;&lt;/a&gt;&lt;br&gt;
Il s'agit de l'arc en progression au milieu de l'interface utilisateur. &lt;br&gt;
Son rôle est de donner à l'utilisateur l'idée sur le temps qui est déjà écoulé dans la séance en cours&lt;br&gt;
Cette fonctionnalité à été rendue possible grâce à la puissance de l’élément canvas, l'une de nouveautés de HTML5.&lt;br&gt;
Canvas présentant la possibilité de dessiner les arcs dans la page web, nous nous en sommes servi pour dessiner progressivement cet arc dans notre page.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Pour le travail, à 360° correspond 1500 secondes(d'ici on peut facilement trouver l'angle de progression à chaque seconde)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;html&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;        &amp;lt;canvas id="w" width="300" height="300"&amp;gt;&amp;lt;/canvas&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;javascript&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//Configuration de canvas
let w = document.querySelector("#w");
let work = w.getContext("2d");
work.lineWidth = 10
//Initialisation des angles de progression
let progression = -Math.PI / 2
let progression2 = -Math.PI / 2
//Progression de l'arc dans la seance de travail
progression = progression + 0.24 * Math.PI / 180
work.beginPath();
work.arc(centreX, centreY, 100, -Math.PI / 2,progression);//centreX et centreY sont le centre de l'arc,100 est le rayon 
work.stroke(); 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;LES BOUTONS DE COMMANDE&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6f7Tet1B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nktpyy1bmurv8b0ex5gc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6f7Tet1B--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nktpyy1bmurv8b0ex5gc.png" alt="Image description" width="453" height="137"&gt;&lt;/a&gt;&lt;br&gt;
Il s'agit de 2 boutons dans la partie inférieure du projet, l'un servant à l'actualisation et l'autre à jouer ou pauser&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;html&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;div id="buttonContainer"&amp;gt;
     &amp;lt;button id="stop"&amp;gt;
            &amp;lt;img src="refresh.svg" alt="" /&amp;gt;
     &amp;lt;/button&amp;gt;
     &amp;lt;button id="play"&amp;gt;
            &amp;lt;img src="pause.svg" alt="" /&amp;gt;
     &amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;css&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#buttonContainer{
    display: flex;
    flex-direction: row;
    width: 100%;
    justify-content: space-around;
    margin-bottom: 20px;
}
button{
    background-color:   #1E90FF;
    border-style: none;
    border-radius: 25px;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;em&gt;javascript&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;//Variables de 2 boutons
let stop = document.getElementById("stop")
let play = document.getElementById("play")
//Actions aux 2 boutons
stop.addEventListener('click', (e) =&amp;gt; {
    document.location.reload()
})

play.addEventListener('click', (e) =&amp;gt; {
    progress = !progress
    chrono()
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Merci d'avoir pris de votre temps pour lire cet article, pour une bonne compréhension des codes, veillez récupérer le code complet du projet sur &lt;a href="https://github.com/GloiMir/pomodoro-html.git"&gt;https://github.com/GloiMir/pomodoro-html.git&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>LES JOINTURES EN SQL</title>
      <dc:creator>GloiMir</dc:creator>
      <pubDate>Tue, 01 Nov 2022 17:11:40 +0000</pubDate>
      <link>https://dev.to/gloimir/les-jointures-en-sql-heo</link>
      <guid>https://dev.to/gloimir/les-jointures-en-sql-heo</guid>
      <description>&lt;p&gt;&lt;strong&gt;INTRODUCTION:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En SQL,la jointure est un moyen de mettre en liaison deux ou plusieurs tables.&lt;br&gt;
La jointure avait été créée pour éviter le problème d’avoir plusieurs colonnes dans une table. &lt;br&gt;
Imaginez une table qui enregistre les information d’une personne mais parmi ces informations on doit mentionner quelque part les informations de son père et de sa mère.&lt;br&gt;
Dans un premier temps,on sera tenté de créer une table (Personne) avec les colonnes suivantes:id, nom, post-nom, prénom, sexe, age, téléphone, mail, nom-pére, post-nom-pére, prénom-pére, âge-pére, téléphone-pére, mail-pére, nom-mère, post-nom-mère, prénom-mère, âge-mère, téléphone-mère, mail-mère.&lt;br&gt;
Nous nous retrouvons avec cette grande table de plus de 20 colonnes.&lt;br&gt;
La jointure met en avant le principe de diviser pour mieux gérer ; elle réduit le nombre de colonnes mais augmente le nombre de tables pour mieux manipuler les données.&lt;br&gt;
Ainsi, grâce à la jointure nous pouvons avoir 3 tables ici chacune avec un nombre réduit de colonnes ; table Personne(id, nom, post-nom, prénom, sexe, âge, téléphone, mail, id-pére, id-mère), table Pére(id, nom, post-nom, prénom, âge, téléphone, mail) et table Mère(id, nom, post-nom, prénom, âge, téléphone, mail).&lt;br&gt;
La jointure est basée sur la notion de clé étrangère, une clé étrangère est une clé(colonne) normale dans une table mais qui est clé primaire dans une autre table.&lt;br&gt;
Dans notre cas les clés id-pére et id-mère sont des clés étrangères dans la table Personne car elles sont respectivement clés primaires dans les tables Pére et Mère.&lt;br&gt;
Dans le cadre de cet article, nous allons utiliser le SGBD Postgresql.&lt;br&gt;
&lt;strong&gt;Contenu de la table Personne&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GPzDzYoi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mfgnfkqdtd42dgep7nsf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GPzDzYoi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mfgnfkqdtd42dgep7nsf.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contenu de la table Pere&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H6eGOBCL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sf127pek8t3eof7jpt9z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H6eGOBCL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sf127pek8t3eof7jpt9z.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Contenu de la table Mere&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CtvHiFxP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/30d5gpile0ige4j6633g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CtvHiFxP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/30d5gpile0ige4j6633g.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SYNTAXE:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dans la syntaxe de jointures, 2 mots clés sont très importants:&lt;br&gt;
&lt;strong&gt;JOIN&lt;/strong&gt;: Prends à sa gauche et à sa droite les 2 tables qu'on veut joindre.&lt;br&gt;
&lt;strong&gt;ON&lt;/strong&gt;: Prend à sa droite les clés de liaison de 2 tables mentionnées de part et d'autre de JOIN.&lt;br&gt;
&lt;code&gt;Table1 JOIN Table2 ON clé-de-liaison(dans Table1) = clé-de-liaison(dans Table2)&lt;/code&gt; &lt;br&gt;
Donc, si nous voulons afficher les informations du père de Gloire, nous devons exécuter le script suivant:&lt;br&gt;
&lt;code&gt;SELECT Pere.* FROM Pere JOIN Personne ON Pere.id=Personne.id-pere WHERE Personne.prenon='Gloire'&lt;/code&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--sGKtTyJG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2urwxq2al60cxn4vcpzy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--sGKtTyJG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2urwxq2al60cxn4vcpzy.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;br&gt;
Il est nécessaire de signaler le nom de la table avant chaque colonne pour éviter le conflit d’ambiguïté.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TYPES:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Les différents types de jointures sont :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Inner join&lt;/strong&gt;: Jointure interne qui retourne les enregistrements lorsque la condition est vérifiée dans les 2 tables.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--foeD3qqV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4bp3at0zqu5xyqrnejzs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--foeD3qqV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4bp3at0zqu5xyqrnejzs.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Cross join&lt;/strong&gt;: Jointure qui permet de joindre chaque ligne d’une table avec chaque ligne de l’autre table.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--l6X0f2AT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lh1j48ioaved7s88rrnk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--l6X0f2AT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lh1j48ioaved7s88rrnk.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Left join&lt;/strong&gt;:Jointure permettant de retourner toutes les entrées de la table de gauche.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_Yu35QBw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f8s2vl9zv49qo5frd854.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_Yu35QBw--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/f8s2vl9zv49qo5frd854.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Right join&lt;/strong&gt;:Jointure permettant de retourner toutes les entrées de la table de droite.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dSM4ZSX1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ulidmgw4pait579kca3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dSM4ZSX1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ulidmgw4pait579kca3.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Full join&lt;/strong&gt;:Jointure retournant les résultats lorsque la condition est vérifiée dans au moins l’une de tables.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tbLrL1y4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9cc73yj78z3hi7jxkcl4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tbLrL1y4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9cc73yj78z3hi7jxkcl4.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Self join&lt;/strong&gt;: Jointure d'une table avec elle même.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT `t1`.`nom_colonne1`, `t1`.`nom_colonne2`, `t2`.`nom_colonne1`,
`t2`.`nom_colonne2`
FROM `table` as `t1`
LEFT OUTER JOIN `table` as `t2` ON `t2`.`fk_id` = `t1`.`id`

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;- Natural join&lt;/strong&gt;: Jointure naturelle entre 2 tables s'il y a au moins une colonne qui porte le même nom entre les 2 tables.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yWyyJx0C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rld815a6tq0trz2v1mhu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yWyyJx0C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rld815a6tq0trz2v1mhu.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Union join&lt;/strong&gt;: Jointure union&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RENOMMAGE:&lt;/strong&gt; &lt;br&gt;
En SQL,le renommage(alias) c'est l'utilisation de lettres ou consonnes simples à la place de noms des tables pour éviter des longues lignes des scripts généralement lorsqu'on fait des jointures complexes.&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i2Gh1N_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iip3vnvb5llcds0ywc0t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i2Gh1N_t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iip3vnvb5llcds0ywc0t.png" alt="Image description" width="880" height="495"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CONCLUSION:&lt;/strong&gt;&lt;br&gt;
Enfin, connaissant tous la complexité de manipulation des données de nos jours,et la jointure étant l'une de techniques qui simplifient cette manipulation, je nous invite à se servir du présent article pour se mettre en contact avec cette technique et avoir la facilité de nous y approfondir.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
