
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 &bsp;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 |