SQL:返回不匹配的值为NULL

时间:2018-01-23 10:21:36

标签: php sql arrays

我从大约900条记录的CSV文件中获取了一系列数据。我有一个查询,它根据数据库中的记录检查数组中的数据。该查询返回数据库中找到/匹配数组中数据的所有项

但是,我仍然希望数组中与数据库不匹配的记录包含在结果中,例如使用空值或类似的东西

我已经搜索过一个解决方案,但似乎没有什么能与我的情况相符

感谢任何帮助

SELECT U.address, 
               U.postcode, 
               M.member_id 
FROM members M
LEFT JOIN ... On ...
WHERE 
U.address LIKE :address
U.postcode = :postcode 
... So on

使用pdo预备声明

1 个答案:

答案 0 :(得分:0)

你可以使用union来完成它,第二部分是创建一个虚拟记录,它有一些东西可以从CSV中显示它,但是它有一个null member_id ......

SELECT U.address, U.postcode, M.member_id 
    FROM members M
    LEFT JOIN ... On ...
UNION
SELECT * 
    FROM ( SELECT :address, :postcode, null ) as TEMP
    WHERE NOT EXISTS ( SELECT 1 
                            FROM members M1
                            LEFT JOIN ... On ...)

这不理想,一次处理记录可能更容易,并检查每个选择的记录数。