drop table if exists tmp_a;
CREATE TABLE `tmp_a` (
`date_a` date DEFAULT NULL,
`id` int(11) DEFAULT NULL,
UNIQUE KEY `id_idx` (`id`,`date_a`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
drop table if exists tmp_b;
CREATE TABLE `tmp_b` (
`date_b` date DEFAULT NULL,
`id` int(11) DEFAULT NULL,
UNIQUE KEY `id_idx` (`id`,`date_b`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
truncate TABLE grab.tmp_a;
truncate TABLE grab.tmp_b;
insert into grab.tmp_a(id,date_a)values(1,'2019-01-01'),(1,'2019-01-02');
insert into grab.tmp_b(id,date_b)values(1,'2019-01-01'),(1,'2019-01-02');
我运行
SELECT
*
from
grab.tmp_a as a
inner join
grab.tmp_b as b
on
a.id = b.id
WHERE
a.date_a > b.date_b;
结果会有一条数据出来
1
lazy0327 2019-06-21 17:54:00 +08:00
你确定你 insert into 那句能运行咩?还是我不熟悉 mysql 的语法孤陋寡闻
|
2
lazy0327 2019-06-21 17:55:31 +08:00
试了一下,原来确实可以运行,这个写法第一次见呢。
那你这个结果有什么问题呢,两个表都插了两条数据 |
3
jihadwk 2019-06-21 18:01:48 +08:00
看了一遍,没毛病
|
4
Beeethoven 2019-06-21 18:02:58 +08:00
这个结果是正确的啊
|
5
wjfz 2019-06-21 18:05:27 +08:00
你想要什么结果
|
6
wjfz 2019-06-21 18:08:22 +08:00
2019-01-01 1 2019-01-01 1
2019-01-01 1 2019-01-02 1 2019-01-02 1 2019-01-01 1 2019-01-02 1 2019-01-02 1 把 where 去掉关联关系就比较清楚了 |
7
lastpass 2019-06-21 18:09:50 +08:00 via Android
我执行了一遍。没有明白你想表达什么?
出现一条数据有什么问题吗? |
8
Perterually OP @lastpass 这个查询应该没有数据啊,但是会出现一条数据
|
9
Perterually OP @wjfz 按说查询应该没有数据
|
10
Perterually OP |