查询:
SELECT xid
FROM db2.pat_info
WHERE xid IN (SELECT DISTINCT xid
FROM db1.audit
WHERE FUNCTION IN ('ABC','PQR')
AND xid NOT LIKE 'test%'
AND status = 1
AND ques_responded = 9)
AND fname IS NOT NULL
AND t_id IN (11,12)
我是sql的初学者,在执行上面提到的查询时遇到了一个问题。内部查询按预期执行,但当与外部查询集成时,我不会得到任何查询结果。
如果两个查询都是单独执行的,那么得到预期的结果。
内部查询中提到的“function”列是表中的“function”。它不能改变,因为它是旧的实现。
任何线索都会有帮助。
2条答案
按热度按时间qpgpyjmq1#
IN
可能效率很低。切换到EXISTS
或者搬到FROM
条款:在mysql的某些版本中,子查询是为外部表中的每一行重新运行的。
ppcbkaq52#
我不知道合并查询时会发生什么,但是如果您有性能问题,那么我建议使用
exists
而不是in
条款