【问题标题】:SQL: return values that don't match as NULLSQL:返回不匹配为 NULL 的值
【发布时间】:2018-01-23 10:21:36
【问题描述】:

我有一组数据来自大约 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 准备语句

【问题讨论】:

  • 如果您不显示您的代码,无济于事...
  • 显示你的查询..
  • 从 CSV 创建一个临时表并执行RIGHT JOIN
  • 添加了查询示例。我也无法为此数据库创建表
  • @cheesycoder CD001 建议了一个临时表。

标签: php sql arrays


【解决方案1】:

您可以使用联合来执行此操作,第二部分是创建一个虚拟记录,该记录显示它来自 CSV,但它的 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 ...)

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

【讨论】:

    猜你喜欢
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    相关资源
    最近更新 更多