Mysql查询问题(如何消除old_device_id列的空值记录)

时间:2017-05-29 06:36:16

标签: mysql

我有两张桌子

device(id, name)
device_map(email, old_device_id)

device_mapusersold devices的列表。有些用户可能没有旧设备。

old_device_idunique,并在设备表中引用id。但它也可以是null

现在我想对表连接进行选择查询。

select device.email, device.old_device_id, device.name 
from join of device.id and device_map.old_device_id sort by device.name

未选择device_mapold_device_id为空的某些行。

SELECT dmap.email, dmap.old_device_id, d.name
FROM device_map dmap 
JOIN device d ON d.id = dmap.old_device_id ORDER BY d.name

1 个答案:

答案 0 :(得分:1)

以下是查询:

SELECT dm.email, dm.old_device_id, d.name
FROM device_map dm 
LEFT JOIN device d ON d.id = dm.old_device_id ORDER BY d.name
INNER JOINdevice_map表之间的

device会自动删除null值为old_device_id的记录。

LEFT JOIN也会包含空记录。