想要避免选择连接查询中的特定行...请参阅说明

时间:2010-05-13 10:36:18

标签: mysql select left-join

我有一个Select Left Join Query,它会显示最新的changeone(它的一个时间)列名称(“field”不应该相等)列名(“trackid”不应该相等)和列名“操作应该是”UPDATE“”,下面是我正在谈论的查询...

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”或“hits”

现在我不希望显示一行有两个特定列的值,即“字段值”,值为“lastvisitDate”和“hits”

现在,如果我在上述查询中附加条件 “AND j1.field!='lastvistDate'和j1.field!='命中'” 然后我没有得到任何结果......

表结构是

jos_audittrail:

  1. ID
  2. 的TrackID
  3. 操作
  4. OLDVALUE
  5. NEWVALUE
  6. 表名
  7. changedone(它的时间)
  8. 我希望我已经正确地提供了详细信息如果你仍然发现缺少的东西,我会尝试提供更好的方式......

    请帮我避免使用那些提到“field”值

    的那两行

1 个答案:

答案 0 :(得分:1)

我以这种方式更改了我的选择查询,并按照我需要的方式得到了结果

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的支持......:)