1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| CREATE TABLE Utilisateur
(idutilisateur INTEGER,
Nom VARCHAR(128),
CONSTRAINT PK_MaTable PRIMARY KEY (idutilisateur))
INSERT INTO Utilisateur (idutilisateur, nom)
VALUES (1, 'Albert')
INSERT INTO Utilisateur (idutilisateur, nom)
VALUES (2, 'Bertrand')
INSERT INTO Utilisateur (idutilisateur, nom)
VALUES (3, 'Cedric')
CREATE TABLE Renseignement
(idrenseignement INTEGER,
Libelle VARCHAR(128),
CONSTRAINT PK_MaTable3 PRIMARY KEY (idrenseignement))
INSERT INTO Renseignement (idrenseignement, Libelle )
VALUES (1, 'Adresse')
INSERT INTO Renseignement (idrenseignement, Libelle )
VALUES (2, 'Tel')
CREATE TABLE UtilisateurRenseignement
(idrenseignement INTEGER,
idutilisateur INTEGER,
Info VARCHAR(128),
CONSTRAINT PK_MaTable2 PRIMARY KEY (idrenseignement, idutilisateur))
INSERT INTO UtilisateurRenseignement
(idutilisateur, idrenseignement, Info )
VALUES (1,1, '23 rue de la Paix')
INSERT INTO UtilisateurRenseignement
(idutilisateur, idrenseignement, Info )
VALUES (1,2, '02 60 50 10')
INSERT INTO UtilisateurRenseignement
(idutilisateur, idrenseignement, Info )
VALUES (2,1, '50 chemin fleuri')
SELECT U.*,
(SELECT Info
FROM UtilisateurRenseignement UR
WHERE idrenseignement = 1
AND UR.idutilisateur = U.idutilisateur) AS Adresse,
(SELECT Info
FROM UtilisateurRenseignement UR
WHERE idrenseignement = 2
AND UR.idutilisateur = U.idutilisateur) AS Tel
FROM Utilisateur U
SELECT U.*,
(SELECT Info
FROM UtilisateurRenseignement UR
INNER JOIN Renseignement R
ON UR.idrenseignement = R.idrenseignement
WHERE Libelle = 'Adresse'
AND UR.idutilisateur = U.idutilisateur) AS Adresse,
(SELECT Info
FROM UtilisateurRenseignement UR
INNER JOIN Renseignement R
ON UR.idrenseignement = R.idrenseignement
WHERE Libelle = 'Tel'
AND UR.idutilisateur = U.idutilisateur) AS Tel
FROM Utilisateur U |
Partager