gpt4 book ai didi

mysql - 嵌套的 SQL 查询无法引用两个不同的数据库

转载 作者:行者123 更新时间:2023-11-29 07:33:12 25 4
gpt4 key购买 nike

查询:

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'。它无法更改,因为它是旧实现。

任何线索都会有所帮助。

最佳答案

IN 可能效率很低。切换到 EXISTS 或移动到 FROM 子句:

SELECT pi.xid 
FROM db2.pat_info pi JOIN
(SELECT DISTINCT xid
FROM db1.audit
WHERE FUNCTION IN ('ABC', 'PQR') AND
xid NOT LIKE 'test%' AND
status = 1 AND
ques_responded = 9
) a
ON pi.xid = a.xid
WHERE pi.fname IS NOT NULL AND pi.t_id IN (11, 12);

在某些版本的 MySQL 中,子查询会针对外表中的每一行重新运行。

关于mysql - 嵌套的 SQL 查询无法引用两个不同的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50138874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com