我尝试使用myPhpAdmin应用程序中的以下查询来交叉引用2个表:
select A.*
from purchases A
where A.user in (
select B.user
from users B
where B.ppi = 'Facebook Ads'
)
它接受了语法,但DB从未返回。用户表不小,200k行,但我一直在运行查询,所以它不应该花那么长时间..任何关于为什么这可能不起作用的想法?查询陷入状态:发送数据。我不得不杀了它因为我的数据库在这一点上被打破所以我现在不能对此进行任何其他检查而且我害怕再试一次:)
在mysql FYI上运行。
我真正想要的是只有当具有给定ppi值的另一个表中存在相同的用户ID时才能对表购买中的值进行操作。
答案 0 :(得分:2)
使用加入并确保您在B.user
和B.ppi
上有索引。
SELECT A.*
FROM purchases A
INNER JOIN users B ON A.user=B.user
WHERE B.ppi = 'Facebook Ads'
答案 1 :(得分:0)
连接应该比子查询更快。试试这个:
Select A.* from purchases A
INNER JOIN users B on A.user = B.user
WHERE B.ppi='Facebook Ads'