Salut,
Un petit problème mathématique :
J'ai 4 tables
Remplies de la sorte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 T1(doc_id#, rank#, value) T2(doc_id#, rank#, value) T3(doc_id#, rank#, value) T4(doc_id#, rank#, value)
Je souhaiterais obtenir le résultat suivant
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 T1 1 1 3 1 2 6 T2 1 1 6 1 2 7 1 3 9 T3 1 1 10 1 2 12 T4 1 1 13 1 2 14 1 3 15 1 4 16
Tout ça sous MySQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 T5 Doc_id value1 value2 value3 value4 1 3 6 10 13 1 6 7 12 14 1 9 15 1 16
A priori les FULL OUTER JOIN pourraient être utiles ici, malheureusement ils ne sont pas implémentés sous MySQL
J'ai essayé avec 1 UNION mais c'est pas top
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT T1.VALUE T2.VALUE T3.value T4.value FROM q1 FULL JOIN q2 ON (q1.rank = q2.rank AND q1.doc_id=q2.doc_id) FULL JOIN q3 ON (q1.rank = q3.rank AND q1.doc_id=q3.doc_id) FULL JOIN q4 ON (q1.rank = q4.rank AND q1.doc_id=q4.doc_id)
Auriez-vous une idée de résoudre ce problème sans utiliser de programme java ?
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 (SELECT T1.VALUE T2.VALUE T3.value T4.value FROM q1 left JOIN q2 ON (q1.rank = q2.rank AND q1.doc_id=q2.doc_id) left JOIN q3 ON (q1.rank = q3.rank AND q1.doc_id=q3.doc_id) left JOIN q4 ON (q1.rank = q4.rank AND q1.doc_id=q4.doc_id)) UNION (SELECT T1.VALUE T2.VALUE T3.value T4.value FROM q1 right JOIN q2 ON (q1.rank = q2.rank AND q1.doc_id=q2.doc_id) right JOIN q3 ON (q1.rank = q3.rank AND q1.doc_id=q3.doc_id) right JOIN q4 ON (q1.rank = q4.rank AND q1.doc_id=q4.doc_id));
Merci d'avance,
Blured.
Partager