Salut à tous !
Mon problème est assez simple, mais je cherche la façon la plus efficace de faire.
J'ai 2 tables :
Ma table TABLE_2 possède une FK vers TABLE_1.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 TABLE_1 { TABLE_1_ID; ... } TABLE_2 { TABLE_2_ID; TABLE_1_ID; TABLE_2_DATE TIMESTAMP; ... }
Je cherche à faire un update sur ma table TABLE_1, sur toutes les lignes qui respectent ces conditions :
En gros, ce que je cherche à faire c'est d'updater les lignes de TABLE_1 dont les identifiants sont strictement à l'intérieur de l'intervalle de temps précisé dans la table TABLE_2.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 update TABLE_1 t1 set mesChamps where t1.TABLE_1_ID in (select t2.TABLE_1_ID from TABLE_2 t2 where t2.TABLE_2_DATE between startDate and endDate) and t1.TABLE_1_ID not in (select t2.TABLE_1_ID from TABLE_2 t2 where t2.TABLE_2_DATE not between startDate and endDate)
En résumé :
Je regarde dans TABLE_2 tous les identifiants TABLE_2.TABLE_1_ID qui correspondent à des enregistrements de TABLE_2 dont le champ TABLE_2.TABLE_2_DATE est entre les bornes précisées MAIS, je ne veux pas les identifiants TABLE_2.TABLE_1_ID qui sont également en dehors des bornes précisées.
Je pensais faire avec une jointure externe LEFT JOIN, mais je ne vois pas trop comment m'y prendre, si vous avez des pistes, elles sont les bienvenues !
J'espère que j'ai été assez clair
Partager