我正在学习 PHP 和 MySQL,以掌握服务器端脚本编写的窍门并满足个人兴趣/发展。除了“hello world”之外的第一个“程序”似乎是编写自己的博客。
这有点超出了我的能力,所以我想我应该从联系人数据库类型开始。到目前为止一切顺利,但是(总是有但是!)我正在尝试以联系人姓名格式为 mailto: 链接的形式来格式化演示文稿。
$query = mysql_query("
SELECT CONCAT(fname,', ',sname) AS name, email.address AS email
FROM contacts, emails
WHERE contacts.contactID=email.contactID");
while ($row = mysql_fetch_array($query)) {
echo "<li><a href=\"mailto" . $row['email'] . "\"> . $row['name'] . "</a></li>";
}
这很好,直到我敢于输入在数据库中没有电子邮件地址的联系人,此时明显缺乏与contacts.contactID相等的email.contactID就出现了。
我意识到我应该能够处理这个问题,但是......我想不出如何处理(失眠!@.@)。如有任何建议,我们将不胜感激。
最佳答案
您需要左(又称左外)连接。
select concat(c.fname, ' ', c.sname) as name, e.address as email
from contacts c
left join emails e
on (c.contactID = e.contactID)
关于php - 如何防止、应对或补偿空/NULL 字段 (MySQL) 返回空集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/707270/