Bonjour,
J'ai un soucis pour écrire une requête faisant une jointure sur une même table.
Voici le contenu de ma table d'exemple :
Récupération datas pour les fichiers ayant comme id_file 1 et 2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 +---------+----+---+ | id_file | k | v | +---------+----+---+ | 1 | A1 | A | | 1 | B1 | B | | 1 | C1 | C | | 2 | A1 | D | | 2 | B1 | E | | 3 | B1 | F | | 3 | C1 | G | +---------+----+---+
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT a.k k1, a.v v1, b.k k2, b.v v2 FROM test a LEFT JOIN test b ON a.k = b.k AND b.id_file = 2 WHERE a.id_file = 1 ORDER BY a.k;Cela fonctionne vu que je prends toutes les lignes de "b" mais je pense qu'il est possible de faire plus propre (et plus conforme ?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 +----+----+------+------+ | k1 | v1 | k2 | v2 | +----+----+------+------+ | A1 | A | A1 | D | | B1 | B | B1 | E | | C1 | C | null | null | +----+----+------+------+
Récupération datas pour les fichiers ayant comme id_file 2 et 3
Ici je ne vois pas trop comment tourner la requête pour obtenir ceci :
Une petite idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 +------+------+------+------+ | k1 | v1 | k2 | v2 | +------+------+------+------+ | A1 | D | null | null | | B1 | E | B1 | F | | null | null | C1 | G | +------+------+------+------+
Partager