SQL : Comprendre les rêquetes LEFT JOIN via un exemple

Voici un petit exemple, on va faire une base de donnée sous Postgresql :

$ createdb CLASSE
$ psql -d CLASSE
psql (14.11 (Ubuntu 14.11-0ubuntu0.22.04.1), server 10.15 (Ubuntu 10.15-0ubuntu0.18.04.1))
Type "help" for help.
CLASSE=> create table classe (Prenom varchar(50) primary key, classe int);
CREATE TABLE
CLASSE=> create table math (Prenom varchar(50) primary key, note float);
CREATE TABLE
CLASSE=> create table anglais (Prenom varchar(50) primary key, note float);
CREATE TABLE
CLASSE=> create table espagnol (Prenom varchar(50) primary key, note float);
CREATE TABLE
CLASSE=> insert into classe (Prenom, classe) values ('Riri',1);
INSERT 0 1
CLASSE=> insert into classe (Prenom, classe) values ('Fifi',1);
INSERT 0 1
CLASSE=> insert into classe (Prenom, classe) values ('Loulou',1);
INSERT 0 1
CLASSE=> insert into classe (Prenom, classe) values ('Paul',2);
INSERT 0 1
CLASSE=> insert into classe (Prenom, classe) values ('Pierre',2);
INSERT 0 1
CLASSE=> insert into classe (Prenom, classe) values ('Jacques',2);
INSERT 0 1
CLASSE=> insert into math (Prenom, note) values ('Riri',10);
INSERT 0 1
CLASSE=> insert into math (Prenom, note) values ('Fifi',11);
INSERT 0 1
CLASSE=> insert into math (Prenom, note) values ('Loulou',12);
INSERT 0 1
CLASSE=> insert into math (Prenom, note) values ('Paul',13);
INSERT 0 1
CLASSE=> insert into math (Prenom, note) values ('Pierre',14);
INSERT 0 1
CLASSE=> insert into math (Prenom, note) values ('Jacques',15);
INSERT 0 1
CLASSE=> insert into anglais (Prenom, note) values ('Riri',11);
INSERT 0 1
CLASSE=> insert into anglais (Prenom, note) values ('Fifi',12);
INSERT 0 1
CLASSE=> insert into espagnol (Prenom, note) values ('Loulou',13);
INSERT 0 1
CLASSE=> insert into espagnol (Prenom, note) values ('Paul',14);
INSERT 0 1
CLASSE=> insert into espagnol (Prenom, note) values ('Pierre',15);
INSERT 0 1
CLASSE=> insert into anglais (Prenom, note) values ('Jacques',16);
INSERT 0 1

On a donc 2 classes de 3 élèves, et dans les classes tous le monde à math mais les langues sont mélangés.

Sans jointure on n’a rien :

CLASSE=> select c.Prenom,m.note as Math,a.note as Anglais, e.note as Espagnol   
from classe c, math m, anglais a, espagnol e 
where c.Prenom = a.Prenom and c.Prenom = m.Prenom and c.Prenom = e.Prenom and c.classe = 1;

 prenom | math | anglais | espagnol 
--------+------+---------+----------
(0 rows)

Ce qui est normal car personne ne fait Anglais & Espagnol.

Avec une jointure je vais ajouter les données si elles sont disponibles :

CLASSE=> select c.Prenom,m.note as Math,a.note as Anglais, e.note as Espagnol 
from classe c 
     LEFT JOIN math m ON c.Prenom = m.Prenom  
     LEFT JOIN anglais a ON c.Prenom = a.Prenom 
     LEFT JOIN espagnol e ON c.Prenom = e.Prenom  
where c.classe = 1;
 prenom | math | anglais | espagnol 
--------+------+---------+----------
 Loulou |   12 |         |       13
 Riri   |   10 |      11 |         
 Fifi   |   11 |      12 |         
(3 rows)

 

Comment la désinformation d’extrême-droite sert les intérêts russes en France

Lien

A lire : https://next.ink/134413/comment-la-desinformation-dextreme-droite-sert-les-interets-russes-en-france/   L’International Centre for Counter-Terrorism publie un ouvrage détaillant les liens entre Russie et extrêmes droites dans dix pays européens. En France, il s’attarde sur les effets des campagnes de Joël Sambuis et de Rémy Daillet-Wiedemann, qui ont tous deux opéré depuis l’étranger.

A lire aussi : https://www.latribune.fr/technos-medias/internet/meta-facebook-instagram-laisse-la-propagande-pro-russe-proliferer-aupres-de-millions-de-francais-revele-une-ong-995598.html    Des millions de comptes français ont été exposés à des publicités pro-russes visant à les convaincre que l’aide en Ukraine n’était pas nécessaire, sans aucune modération de Meta. C’est l’une des révélations d’une étude de l’ONG AI Forensics. Cette dernière montre que l’entreprise néglige la modération des contenus politiques, allant à l’encontre de ses propres règles. 

Jean-Marc Jancovici explique pourquoi avoir plus de pistes cyclables est un investissement gagnant sur tous les plans

Lien

A écouter : https://www.rtl.fr/actu/debats-societe/jean-marc-jancovici-explique-pourquoi-avoir-plus-de-pistes-cyclables-est-un-investissement-gagnant-sur-tous-les-plans-7900373632 : Jean-Marc Jancovici se penche ce samedi sur les pistes cyclables et selon lui, nous avons tout intérêt à en construire davantage.

Home Assistant : Test/Avis du Zigbee Interrupteur TONGOU

Il est à 35 Euros sur Amazon, mais je le déconseille vivement de l’acheter ( Site Web du Fournisseur : https://fr.elcb.net/ ) . Le nom exact sur Amazon :  » Zigbee Interrupteur intelligent universel avec mesure de conso d’énergie, protection contre les surcharges, minuterie DIY Commande vocale compatible Alexa, Google Home Tuya/Smart Life APP TONGOU« .
Voici les mesures sur une semaine du module :

Je suis passé de 546 kWh à 4350 kWh. Donc 3804 kWh.

Si je regarde la puissance, j’ai des pics de 2000W.

Et la tension :

Maintenant si je regarde ma consommation totale (et pas seulement le cumulus sur EDF :

Je suis à 20 kWh par jour au maximum, j’ai exactement 116,23 kwh. Au maximum c’est 70% de la consommation donc 80 kWh. On est très loin des 3804 kWh. On doit avoir un facteur 50. J’ai du consommé 76,08 kWh. 

Bref cela ne marche pas.