Хотите избежать определенных строк в запросе выбора соединения ... Смотрите описание - PullRequest
1 голос
/ 13 мая 2010

У меня есть запрос Select Left Join, который отображает строки для последнего измененного (его время) имени столбца («поле» не должно быть равным), имя столбца («trackid» не должно быть равным) и имя столбца » «Операция должна быть« ОБНОВЛЕНИЕ »», ниже приведен запрос, о котором я говорю ...

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

Я получаю результат со значением поля либо "lastvisitDate", либо "совпадения"

Теперь я не хочу, чтобы строка отображалась со значением двух отдельных столбцов, т. Е. "Значение поля", значение равно "lastvisitDate" и "совпадения"

Теперь, если я добавлю условие в приведенном выше запросе, "И j1.field! = 'LastvistDate' И j1.field! = 'Хиты'" тогда я не получаю никакого результата ...

Структура таблицы

jos_audittrail:

  1. ID
  2. TrackID
  3. работа
  4. OldValue
  5. Новое_значение
  6. table_name
  7. жить
  8. изменено одно (это время)

Надеюсь, я подробно изложил детали. Если вы все еще не нашли что-то не так, я постараюсь предоставить вам более лучший способ ...

Пожалуйста, помогите мне избежать этих двух строк с упомянутыми значениями "поля"

1 Ответ

1 голос
/ 13 мая 2010

Я изменил свой запрос на выборку таким образом, и я получил результат так, как мне нужно

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'

Спасибо Pranav за поддержку ...:)

...