SELECT * from trn where concat(comp_id,cus_id)
IN (select concat(comp_id,cus_id) FROM cus where sid='A0001')
AND docdate between ('2018-01-01') and ('2018-04-30')
SELECT t.*
FROM trn t
WHERE EXISTS (SELECT 1
FROM cus c
WHERE c.sid = 'A0001' AND c.comp_id = t.comp_id AND c.cus_id = t.cus_id
) AND
docdate between '2018-01-01' and '2018-04-30';
SELECT DISTINCT t.*
FROM trn t
JOIN cus c ON t.comp_id = c.comp_id AND t.cus_id = c.cus_id
WHERE c.sid='A0001' AND t.docdate BETWEEN ('2018-01-01') AND ('2018-04-30');
3条答案
按热度按时间jei2mxaa1#
你可以用
EXISTS
:zrfyljdw2#
你可以用
JOIN
,例如:aydmsdu93#
这个
concat
可能是因为它不能使用索引而导致性能问题。但是mysql支持多列子查询,所以只需删除它: