`
epy
  • 浏览: 326049 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL中按可NULL列JOIN时的问题

阅读更多

MySQL中,SELECT NULL=NULL结果是NULL,SELECT NULL!=NULL结果也是NULL。

 

如果两个表按某几个列中进行JOIN,如果有一列允许有NULL值,那么关联时要进行特殊处理。一个例子,wbk_mrdic_hscodeCODE_TCODE_S进行JOINCODE_S可以为NULLSQL如下:

SELECT m.`CODE_T`,m.`CODE_S`, h.`UNIT_1`,h.`UNIT_2` 

FROM `wbk_mr` m 

JOIN `dic_hscode` h 

ON m.`CODE_T`=h.`CODE_T` 

AND (m.`CODE_S`=h.`CODE_S` OR (m.`CODE_S` IS NULL AND h.`CODE_S` IS NULL) )

 

分享到:
评论

相关推荐

    MySQL Left JOIN时指定NULL列返回特定值详解

    回到给出的示例,以下的SQL语句展示了一个如何在LEFT JOIN中使用`COALESCE`来处理NULL值的例子: ```sql SELECT a.*, COALESCE(t.cous, 0) AS count FROM brand AS a LEFT JOIN (SELECT brandid AS bid, COUNT(1)...

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    只有当两个表中的列值相等时,才会返回结果集。例如: SELECT * FROM `xs` INNER JOIN `cj` ON xs.id = cj.id 返回结果: id name id score 1 张三 1 96 2 李四 2 80 left join left join 又称左联接,是指从左...

    mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录

    MySQL中的`NOT IN`, `LEFT JOIN`, `IS NULL`, 和 `NOT EXISTS` 是四种不同的SQL查询方式,它们在特定情况下可以实现相似的功能,但实际执行效率可能会有很大差异。本文主要探讨这四种方法在处理大数据量时的性能表现...

    mysql join所有方法总结

    INNER JOIN(内连接):是所有Join中最常见的类型。使用INNER JOIN后,只有两个表中能够相互匹配的记录才会出现在结果集中。例如,从上述内容中可以看出,当使用INNER JOIN时,会从employee_table(员工表)和issue...

    MySQL中文参考手册.chm

    8 MySQL 教程 8.1 联接和断开服务器 8.2 输入查询 8.3 常用查询的例子 8.3.1 列的最大值 8.3.2 拥有某个列的最大值的行 8.3.3 列的最大值:按组:只有值 8.3.4 拥有某个字段的...

    Mysql中的join操作

    例如,对于Java和MySQL表,LEFT JOIN会显示所有Java记录,即使MySQL中没有匹配项,MySQL列也会显示NULL。 ```sql SELECT * FROM java LEFT JOIN mysql ON java.name=mysql.name; ``` - **外右联结(RIGHT JOIN...

    MySQL中的JOIN详解及sql实战

    当某个记录在另一个表中没有匹配时,则结果集中相应的列显示为NULL。MySQL不支持标准的FULL OUTER JOIN语法,但可以通过联合使用LEFT JOIN和RIGHT JOIN来实现类似的功能。 #### 三、具体示例分析 假设我们有两个表...

    MySQL JOIN之完全用法

    MySQL JOIN是数据库操作中用于合并多个表的数据的关键技术,尤其在处理复杂的数据关系时显得尤为重要。在优化数据库性能,特别是涉及多表连接查询时,理解JOIN的完全用法至关重要。 首先,JOIN操作主要分为三类:...

    MySQL 5.1中文手冊

    3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找...

    MySQL中文参考手册

    + 4.15.2 启动 MySQL 服务器的问题 + 4.15.3 自动启动和停止 MySQL + 4.15.4 选项文件 o 4.16 升级和降级(downgrading)时有什么特别要做的事情吗? + 4.16.1 从一个 3.22 版本升级到 3.23 + 4.16.2 从一个 ...

    MYSQL

    16.3 已知可用 MyODBC一起工作的程序 16.4 怎样填写 ODBC 管理程序的各种域 16.5 怎样在ODBC中获得一个AUTO_INCREMENT列的值 16.6 报告 MyODBC 的问题 17 与一些常用程序一起使用MySQL 17.1...

    MySQL: Data Join

    本话题主要探讨的是MySQL中的数据联接(Data Join),这是一种合并来自多个表的数据的关键操作,尤其在处理复杂查询和数据分析时显得尤为重要。 数据联接允许我们从两个或更多表中检索相关数据,将它们组合成一个...

    MySQL 5.1官方简体中文参考手册

    3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找...

    MySql 5.1 参考手册.chm

    3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找...

    关于sql的left join,right join,inner join,outerjoin

    OUTER JOIN是LEFT JOIN和RIGHT JOIN的组合,返回所有左表和右表的记录,如果某一边的表中没有匹配,结果则显示NULL。SQL标准定义了FULL OUTER JOIN,但在某些数据库系统(如MySQL)中并不支持。 ```sql SELECT ...

    解析mysql left( right ) join使用on与where筛选的差异

    为了更加具体地说明ON和WHERE在LEFT JOIN中的差异,我们可以通过一个实际的例子来进行分析。假设有两张表A和B,它们各自有ID字段,并分别插入了不同的数据。现在使用LEFT JOIN将这两个表连接起来,并尝试找出符合...

Global site tag (gtag.js) - Google Analytics