我有一张table
table1 a_id
作为 PK
, ipaddress
, create_dt
在这里 ipaddress
是 varchar
, create_dt
是 datetime
```
a_id ip create_dt
9205 10.10.10.10 2017-01-07 08:03:32
9206 10.10.10.11 2017-01-06 08:03:32
9207 10.10.10.12 2015-01-07 08:03:32
---1000多行
我还有一个mysql表,它有以下列 `id` 作为 `PK` , `ip` ,
check_type `check_status` , `a_id` 以及 `created_dt` :此处 `a_id` 外键来自 `table1` 以及 `created_dt` 是 `datetime` ```
id ip check_type check_status a_id timestamp_val
1 10.10.10.10 check1 FAIL 9205 2017-01-07 10:03:32
2 10.10.10.10 check2 PASS 9205 2017-01-07 10:03:32
3 10.10.10.10 check1 FAIL 9205 2016-11-07 10:03:32
4 10.10.10.10 check2 PASS 9205 2016-11-07 10:03:32
5 10.10.10.11 check1 PASS 9206 2017-01-06 10:03:32
6 10.10.10.11 check2 PASS 9206 2015-01-06 10:03:32
我要所有的行 table1
哪里 date(create_dt) >= '2017-01-07'
以及 table1.a_id = table2.a_id
以及 table2.check1 = 'FAIL'
也, I only want to consider the row from table2
最新的 timestamp_val
因此,从上面的示例中,我的查询应该返回
a_id ip create_dt
9205 10.10.10.10 2017-01-07 08:03:32
我写了下面的查询和 want to know how to incorporate the logic to consider the row from table2 with latest 'timestamp_val'
```
SELECT
*
FROM table1 a
INNER JOIN table2 b
ON a.a_id = b.a_id
AND DATE(a.create_dt) >= '2017-01-07'
AND b.check_status = 'FAIL'
AND b.check_type = 'check1'
2条答案
按热度按时间yks3o0rb1#
这个
date()
函数对你没有任何帮助。此外,个人比较通常是在where
条款。然后,您可以在
where
条款:cgfeq70w2#