mysql查询条件选择额外数据

标签 mysql sql database conditional-statements

我正在运行以下查询,但是如果销售表中的 cid 不在客户表中的 ID 集中,则该记录不会显示在结果中。

有没有办法让我现有的东西继续工作。因此,如果找到客户 ID,则获取客户信息,如果没有,则姓名和电话返回空白?

    $sql = "SELECT a.*, b.first_name,
                CONCAT(c.fname, ' ', c.lname) AS name, c.phone
                    FROM sales a, users b, customers c
                        WHERE a.cid = c.id  AND a.eid = b.id AND a.status = 0";

最佳答案

您必须使用左连接:

SELECT a.*, b.first_name,
       CONCAT(c.fname, ' ', c.lname) AS name, c.phone
FROM sales a
INNER JOIN users b on a.eid = b.id
LEFT  JOIN customers c on a.cid = c.id
WHERE a.status = 0

关于mysql查询条件选择额外数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18096881/

相关文章:

database - 关闭 Oracle 类型转换

mysql - 日期时间比较?

c# - 获取包含表的数据库列表的有效方法

sql - Postgres - 更改列数据

mysql - 多个表上的 SQL 约束

java - 将数据从 MS-Access 传输到 MySql 数据库的最佳方法

php - Yii 让事件记录在获取字段时应用 MySQL 函数?

mysql - asp.net中的mysql如何转义?

php - PHP 脚本中的 Select 语句

database - Postgres pgAdmin III 对数据库的访问被拒绝