表结构:
A表:
id | num
1 123
2 234
3 345
4 456
5 567
B表:
id | input_id | output_id
1 1 2
2 2 3这条sql:SELECT A.id FROM A WHERE A.id NOT IN (SELECT B.output_id FROM B WHERE B.input_id=1)请问怎样能够使用联合查询替代子查询? 并且需要limit 2
A表的数据量远大于B表
A表:
id | num
1 123
2 234
3 345
4 456
5 567
B表:
id | input_id | output_id
1 1 2
2 2 3这条sql:SELECT A.id FROM A WHERE A.id NOT IN (SELECT B.output_id FROM B WHERE B.input_id=1)请问怎样能够使用联合查询替代子查询? 并且需要limit 2
A表的数据量远大于B表
SELECT A.id FROM A
left join B on a.id=B.output_id and B.input_id=1
WHERE B.output_id is null在B.input_id、ID上建立索引
left join (select * from ttb where input_id=1) B on a.id=B.output_id WHERE B.output_id is null