0

我有 2 张表,一张带有电子邮件地址,一张带有每个电子邮件地址的行数:

Table 1:
1@gmail.com
2@gmail.com
etc

Table 2:
1@gmail.com,value111,value112,value113
1@gmail.com,value121,value122,value123
2@gmail.com,value211,value212,value213
etc.

我想向每个电子邮件地址发送它们的值,所以我收到了电子邮件:

$query = "SELECT email FROM email_table";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$email = $row['email'];

然后,我需要获取每封电子邮件的值。我尝试使用 foreach 但显然方式不正确 有人可以帮忙吗?

非常感谢!

4

2 回答 2

0
$query = "SELECT * FROM email_table AS table1 LEFT JOIN table2 ON table2.email = table1.email";

--edit-- 澄清后,您想从表2中获取附加到表1中的电子邮件地址的信息,并向表1发送电子邮件...

$query = "SELECT table1.email, table2.* FROM email_table AS table1 LEFT JOIN table2 ON table2.email = table1.email";

您的结果是表 1 中的电子邮件字段,表 2 中的所有信息都连接到同一个电子邮件地址。您不需要在此处返回两封电子邮件,因此在您的字段列表中,放置类似这样的内容,而不是table2.*

SELECT table1.email, table2.field1, table2.field2, table2.field3

然后您可以使用 PHPmail发送到您从 table1 获得的电子邮件。

于 2013-10-09T21:31:01.623 回答
0

你想做一个JOIN. 因此,您的查询将如下所示:

SELECT * FROM table2 JOIN table1 ON (table2.email = table1.email);

Coding Horror对表之间的所有连接类型都有很好的解释。

于 2013-10-09T21:31:10.353 回答