J'ai une requête SQL:Cette requête sql peut-elle être simplifiée?
select * from contactmeta
WHERE
contactmeta.contact_id in
(
select tob.object_id from tagobject tob, tag t, taggroup tg
where tob.tag_id = t.tag_id
and t.tag_group_id = tg.tag_group_id
and tob.object_type_id = 14
and tg.org_id = contactmeta.group_id
and (t.name like '%campaign%')
)
AND
contactmeta.contact_id in
(
select tob.object_id from tagobject tob, tag t, taggroup tg
where tob.tag_id = t.tag_id
and t.tag_group_id = tg.tag_group_id
and tob.object_type_id = 14
and tg.org_id = contactmeta.group_id
and (t.name like '%bounced%')
)
Mon problème est que je dois simplifier la partie de la requête dans la clause WHERE (je ne peux pas faire une autre se joindre à la table de contactmeta etc.). Cela est dû au fait que la clause WHERE est créée dynamiquement sur un sql autrement statique.
Vous pouvez voir que la condition where est presque la même sauf pour la condition t.name.
Merci pour votre temps
SK
Il existe une autre différence dans vos sous-requêtes. Le premier a t.tag_group_id = tg.tag_group_id, le second ne l'est pas. – rayd09
@ rayd09: Je pense que c'est juste une erreur de copier-coller car la deuxième sous-requête a 'tob.tag_id = t.tag_id' deux fois. @Samuel: est-ce vrai? ou la question dans votre question est-elle correcte? –
Oui, il s'agit d'une erreur couper-coller ... désolé à ce sujet ... laissez-moi voir si je peux le modifier. – Samuel