mysql查询问题请大牛看一下!

这是表

 CREATE TABLE trans_info(
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,   -- id
m_no VARCHAR(32) NOT NULL,    -- 商户号
card_no VARCHAR(32) NOT NULL,     -- 卡号
terminal_no VARCHAR(32) NOT NULL,    -- 终端号  
trans_time TIMESTAMP NOT NULL   -- 交易时间
);

图片说明

查询条件:同一卡号在24小时内在2台或两台以上的终端上产生5笔或5笔以上的交易
要查询的数据:商户号 m_no
请问大神们这个sql语句怎么写,数据库用的Mysql

select m_no,card_no,terminal_no,count(1) frp, table where trans_time >=(现在的时间-24小时) group by card_no,terminal_no,m_no having count(1) >=2 这个是两台终端的条件
select m_no,card_no,count(1) from table where trans_time >=(现在的时间-24小时) group by card_no,m_no having count(1) >=5 这个是5次交易的条件

然后把上面两个结果扩上括号,分别定义为a,b
select * from table where exists (select 1 from a where a.m_no = table.m_no) and exists (select 1 from b where b.m_no=table.m_no)
--根据上面结果集同时符合条件的。

SELECT
DISTINCT m_no
FROM
trans_info
WHERE
m_no IN (
(
SELECT DISTINCT
(m_no)
FROM
trans_info
WHERE
trans_time >= DATE_SUB(NOW(), INTERVAL 2 HOUR)
GROUP BY
card_no,
terminal_no,
m_no
HAVING
count(1) >= 2
),
(
SELECT DISTINCT
(m_no)
FROM
trans_info
WHERE
trans_time >= DATE_SUB(NOW(), INTERVAL 2 HOUR)
GROUP BY
card_no,
m_no
HAVING
count(1) >= 5
)
)