Mysql:从两个表中选择数据,其中两个表中的电子邮件地址列都匹配

时间:2012-10-31 08:32:26

标签: mysql

我正在尝试从两个表中获取数据,它们是wp_users和opt_in。

这些表都有一个电子邮件列(它们之间唯一的共同点),我正在尝试获得看起来像这样的结果,其中我有wp_users登录名,以及其余的opt_in表数据:

wp_users.user_login, email, opt_in.first_name, opt_in.last_name

我写的查询太慢了。在每个表中有大约10万行,我没有在不限制查询的情况下获得结果。我不能使用正确的工具来完成工作。告诉我我的方式错误。

这是一个查询示例,它为我提供了正确的数据,但速度很慢:

SELECT wp_users.user_email, opt_in.first_name, opt_in.last_name 
FROM wp_users, opt_in 
WHERE wp_users.user_email = opt_in.email;

2 个答案:

答案 0 :(得分:2)

您应该create index在该列上。

对于电子邮件字段,您可以使用UNIQUE索引,它还可以帮助您删除重复的条目。

如果您想检查表上的现有索引。在phpmyadmin / mysql控制台中使用以下查询

show indexes from TABLENAME;

答案 1 :(得分:2)

  

SELECT wp_users.user_email,opt_in.first_name,opt_in.last_name
      来自wp_users
      INNER JOIN(opt_in)
      ON(opt_in.email = wp_users.user_email)