Bonjour a tous,
Cela fait plusieurs jours que je m'arrache les cheveux sur un problème. je suis sur qu'il y a une solution simple mais impossible de la trouver...
voila mon probleme
J'ai trois table :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 container : id content 1 'aaa' 2 'bbb' 3 'ccc' 4 'ddd' 5 'eee' 6 'fff' 7 'ggg' 8 'hhh' 9 'iii' 10 'jjj'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 tmp1 : id 2 3 4 5j'ai besoin de filtrer de deux façons dans dans la table container grace au tables tmp1 et tmp2 (sachant qu'il peut y en avoir plus) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 tmp2 : id 3 4 5 6
ce qui me donne le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT container.* FROM container INNER JOIN tmp1 ON tmp1.id = container.id INNER JOIN tmp2 ON tmp2.id = container.id
maintenant j'ai besoin d'afficher ce résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 array( [id=>3, content:'ccc'], [id=>4, content:'ddd'], [id=>5, content:'eee'] )
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 array( [id=>2, content:'bbb'], [id=>3, content:'ccc'], [id=>4, content:'ddd'], [id=>5, content:'eee'], [id=>6, content:'fff'] )
j'ai trouvé ces deux solutions mais celles si sont bien trop gourmandes en ressource :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT container.* FROM container LEFT JOIN tmp1 ON tmp1.id = container.id LEFT JOIN tmp2 ON tmp2.id = container.id WHERE tmp1.id IS NOT NULL OR tmp2.id IS NOT NULL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT container.* FROM container JOIN tmp298227 JOIN tmp193427 WHERE container.i_autocode = tmp298227.i_containercode OR container.i_autocode = tmp193427.i_containercode GROUP BY container.i_autocode
Quelqu'un aurait la bonté de me donner une solution miracle ?
Mille mercis pour votre aide !!!
Partager