mysql查询多个字段并将null分配给缺少的字段

时间:2014-11-08 00:46:45

标签: mysql

我有一个MySQL查询需要从两个表,“用户”和“cust”获取数据。所有用户都存在于“用户”中,由唯一的“userName”字段标识。 可能存在于“cust”表中,位于相同的字段名称下。

我希望我的查询要做的是从“用户”获取某些数据字段,并从“cust”获取几个字段的信息,如果它们存在,但如果它们不存在(这就是我的问题) is),我需要为响应分配一个空值。

e.g:

SELECT a.userName,b.num,a.firstName,a.lastName,b.student,b.resident \
FROM users a, cust b WHERE a.userName = b.userName AND \
a.created > "2014-06-02" AND a.dupe IS NULL

所以我在“用户”中有758个匹配此查询的条目,但我的查询只返回648 b / c 110个用户不在“cust”中。如何修改我的查询以便返回所有758条记录,110个用户将“num”,“student”和“resident”作为NULL值?

2 个答案:

答案 0 :(得分:0)

这是LEFT JOIN的用途:

SELECT a.userName, b.num, a.firstName, a.lastName, b.studen, b.resident
FROM users a
LEFT JOIN cust b ON a.userName = b.userName
WHERE a.created > '2014-06-02' AND a.dupe IS NULL

答案 1 :(得分:0)

您需要使用右外连接。您目前正在进行内部联接。

http://www.w3schools.com/sql/sql_join_right.asp