Я знаю это очень глупое, но кто-либо может помочь мне в понимании, к чему это присоединяется, запрос делает в elabortive описании?
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 j1.trackid=$t_ids[$n]
AND j2.id IS NULL
Я знаю ее очень глупое, но я должен продолжить свою дальнейшую потребность... Помогите мне...
Left Join
в сочетании с j2.id IS NULL
возвращает только те строки j1
, где нет строки с j2
можно найти.
Поскольку условие j1.changedone
changedone
на trackid
(если их больше одна строка с этим значением изменена одна
для trackid
, все они возвращаются).
Итак, если у вас есть
trackid changedone
1 1
1 2
2 1
, вы получите
trackid changedone
1 2
2 1
, поскольку для 1–1
Left Join
находит запись ( 1-2
) , поэтому j2.id
равно NOT NULL
.