2010-05-13 3 views
1

J'ai une sélection Select Left Join whis me affiche les lignes pour le dernier nom de colonne changedone (son heure) ("field" ne doit pas être égal) nom de la colonne (« TrackID » ne devrait pas être égale) et le nom de la colonne « opération doit être « Mettre à Jour » », ci-dessous est la requête dont je parle ...Vous voulez éviter les lignes particulières de sélectionner une requête de jointure ... Voir la description

SELECT j1. * 
FROM jos_audittrail j1 
LEFT OUTER JOIN jos_audittrail j2 ON (j1.trackid != j2.trackid 
AND j1.field != j2.field 
AND j1.changedone < j2.changedone) 
WHERE j1.operation = 'UPDATE' 
AND j2.id IS NULL 

-je obtenir le résultat avec la valeur du terrain soit "lastvisitDate" ou "hits"

Maintenant, ici, je ne veux pas qu'une ligne soit affichée avec une valeur de deux colonnes en particulier "valeur du champ" la valeur est "lastvisitDate" et "hits"

Maintenant, si je joins la condition dans la requête ci-dessus que « ET j1.field! = « LastvistDate » ET j1.field! = « Hits » » alors je ne suis pas de résultat ...

La structure de la table est

jos_audittrail:

  1. id
  2. trackid
  3. opération
  4. OldValue
  5. newvalue
  6. nom_table
  7. en direct
  8. changedone (son moment)

J'espère avoir donné les détails correctement Si u trouver encore quelque chose que je manque vais essayer de fournir plus ... mieux

Pls me aider à éviter ces deux lignes avec ceux à la valeur mentionnée du « champ »

+0

Pouvez-vous donner un exemple de la sortie que vous obtenez avant ajouter les clauses qui ne fonctionnent pas? –

+0

Je lance cette requête pour obtenir les dernières modifications effectuées pour l'opération de mise à jour ... qui est enregistrée dans la table jos_audittrail en fonction de la structure de la table que j'ai décrite ci-dessus ... –

Répondre

1

I Changed Ma requête de sélection de cette façon et je me suis le résultat de la façon dont je avais besoin

SELECT j1. * 
FROM jos_audittrail j1 
LEFT OUTER JOIN jos_audittrail j2 ON (j1.trackid != j2.trackid 
AND j1.field = j2.field 
AND j1.changedone < j2.changedone) 
WHERE j1.operation = 'UPDATE' 
AND j2.id IS NULL AND j1.field != 'lastvisitDate' AND j1.field != 'hits' 

Merci Pranav pour le soutien ... :)

Questions connexes