比较来自2个表

时间:2015-08-01 13:39:33

标签: php html mysql

我正在使用PHP并使用Wamp在localhost下。我的数据库有2个表,每个表有大约13,000个数据。我想检查来自TableA的NameFromA是否存在于TableB的NameFromB中。当我尝试在100个数据周围使用少量数据时,我有这个代码。

SELECT * FROM TableA WHERE EXISTS (SELECT * FROM TableB WHERE  NameFromA = NameFromB)

我的问题是当我尝试运行它并比较13,000多个数据时没有任何反应。它没有输出。

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT 
  TableA.* 
FROM 
  TableA 
  INNER JOIN TableB ON (TableA.NameFromA = TableB.NameFromB)

如果它仍然很慢,可能是您在DB中有问题或者超时时间太短。

您也可以尝试在MySql管理中运行此操作,以查看该查询将花费多长时间。

还有一件事。您检索的数据必须发送到Web服务器。如果您的表包含每行的大量数据,并且有很多行,这也需要时间。

修改

好的@mar。您必须进行一些故障排除才能找到问题所在。

首先:如果您的PC功能强大。因为对于普通的PC和Server 13k记录都没什么。

第二:你确定表A中至少有一个名字出现在表B中吗?

第三:尝试在外部SQL工具中运行查询 - 而不是在php中。如果它快速重新设置正确的设置,则问题出在php中。

答案 1 :(得分:1)

NameFromA中的TableA列和NameFromB中的TableB上创建索引。

尝试以下查询:

SELECT a.* 
FROM TableA AS a, TableB AS b
WHERE a.NameFromA = b.NameFromB