php:对于一个mysql表中的每条记录,显示第二个表中的所有记录

时间:2013-10-09 21:21:34

标签: php mysql

我有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但显然不是以正确的方式 有人可以帮忙吗?

非常感谢!

2 个答案:

答案 0 :(得分:0)

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

<强> - 编辑 - 澄清之后,您希望将表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

然后你可以使用PHP的mail发送到你从table1获得的电子邮件。

答案 1 :(得分:0)

您想要JOIN。所以你的查询将如下所示:

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

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