Bonjour,

Je n'arrive pas a construire une requête qui me permette de filtrer une colonne sur X occurence (dans mon cas 3).

La table ressemble a ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
--
-- Structure de la table `table1`
--
 
CREATE TABLE `table1` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `id_truc` int(11) unsigned NOT NULL,
  `id_machin` int(11) unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1;
 
--
-- Contenu de la table `table1`
--
 
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(1, 1, 2);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(2, 1, 1);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(3, 1, 3);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(4, 1, 4);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(5, 2, 1);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(6, 2, 2);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(7, 3, 2);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(8, 4, 2);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(9, 4, 3);
INSERT INTO `table1` (`id`, `id_truc`, `id_machin`) VALUES(10, 4, 1);
 
 
SELECT * 
FROM table1 
WHERE id_machin<5 ?? AJOUT LIMITATION 3 OCCURENCES pour id_truc ??
ORDER BY ID ASC
Et le résultat que je veux obtenir :

id 1 (premier résultat id_truc = 1 dans la colonne id_machin,id le + petit)
id 2 (2eme résultat id_truc = 1 dans la colonne id_machin)
id 3 (3eme résultat id_truc = 1 dans la colonne id_machin)
id 5 (premier résultat id_truc = 1 dans la colonne id_machin)
id 6 (2eme résultat id_truc = 2 dans la colonne id_machin)
id 7 (premier résultat id_truc = 3 dans la colonne id_machin)
id 8 (premier résultat id_truc = 4 dans la colonne id_machin)
id 9 (2eme résultat id_truc = 4 dans la colonne id_machin)
id 10 (3eme résultat id_truc = 4 dans la colonne id_machin)
J'ai pensé a having + un count sur id_truc mais sans succès.
Merci a ceux qui pourront m'éclairer