php - 如何防止、应对或补偿空/NULL 字段 (MySQL) 返回空集

标签 php mysql

我正在学习 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/

相关文章:

php - Woocommerce 退款电子邮件

php - (UPD) 在 yii 上不限制表格输入

php - 在 Laravel 中,我需要什么验证规则来检查数字中的字符数?

php - 如何将两个值API传递给android?

mysql - 如何获得不同列的总值(value)?

PHP - 表单错误处理问题

mysql - 选择查询 - 自动填充空字段

mysql - 为什么 MYSQL IN 关键字不考虑 NULL 值

SQL自连接查询?如何获取类别子类别?

INSERT INTO ... WHERE NOT EXISTS 的 mySQL 语法