【问题标题】:How to join MySQL tables using a nullable column?如何使用可为空的列连接 MySQL 表?
【发布时间】:2013-08-08 01:07:00
【问题描述】:

我对 MySQL 有点不熟悉,所以我希望我能在这里找到一些针对我的问题的建议。

基本上我有两张桌子,为了方便起见,称它们为 A 和 B。两个表都有一个类型为varchar 的可空列C。当我使用 C 连接 A 和 B 时,我丢失了任一表中 C 为 NULL 的所有行。我知道这在 MySQL 中是正常的,但我想得到的是一个包含两个表中 C 为 NULL 的行组合的连接。 我发现下面的查询似乎运行良好。

SELECT *
FROM A JOIN B
ON (A.C IS NULL AND B.C IS NULL) OR (A.C IS NOT NULL AND B.C IS NOT NULL AND A.C = B.C)

所以我的问题是,这个查询是我能得到的最好的,还是有办法让这个连接更好?谢谢!

【问题讨论】:

    标签: mysql sql join nullable


    【解决方案1】:

    使用NULL-safe equal operator

    SELECT * FROM A JOIN B ON A.C <=> B.C
    

    【讨论】:

    • 非常有用。非常感谢。
    猜你喜欢
    • 2013-04-19
    • 2021-01-11
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2016-10-08
    • 1970-01-01
    相关资源
    最近更新 更多