首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Null和not NULL值

Null和not NULL值
EN

Stack Overflow用户
提问于 2012-12-19 19:55:11
回答 1查看 91关注 0票数 0

我想通过比较u.fld_id = ct.fld_teacher_id来获取教师的信息,如果ct.fld_teacher_id为null,我将显示not assigned yet。但是ct.fld_teacher_id为空的行在执行时不会显示。

这是我的问题。

代码语言:javascript
复制
  SELECT ct.fld_id as id, ct.fld_serial, ct.fld_city, ct.fld_venue_name, 
        ct.fld_start_time, ct.fld_end_time, 
        ct.fld_duration, ct.fld_available_seats, 
        ct.fld_course_price, ct.fld_status,
        c.fld_name, u.fld_first_name, u.fld_last_name,
        ct.fld_status, ct.fld_teacher_id, ct.fld_training_name,
        ct.fld_class, ct.fld_level, ct.fld_is_fixed, tt.fld_name as training_type_name
   FROM tbl_course_training as ct, tbl_users as u,
        tbl_courses as c, tbl_training_types as tt
   WHERE c.fld_id = ct.fld_course_id AND u.fld_id = ct.fld_teacher_id AND 
       ct.fld_teacher_id = 'NULL' AND tt.fld_id = ct.fld_training_type_id 
EN

回答 1

Stack Overflow用户

发布于 2012-12-19 20:39:39

如果不知道你的查询的结构,我就不能对你的查询进行排序。然而,我注意到的事情很少。

  • 不能将空值与ct.fld_teacher_id = 'NULL'进行比较(null不是字符串)

ct.fld_teacher_id is null --如果您需要选择even when

  • ,则正确的方式为ct.fld_teacher_id is null

u.fld_id = isnull( ct.fld_teacher_id,u.fld_id) --或( sql服务器) u.fld_id = ct.fld_teacher_id或ct.fld_teacher_id is null --(my sql或sql服务器) u.fld_id = COALESCE(ct.fld_teacher_id,u.fld_id) --(my Sql)

  • 也避免使用像From Table1 t1, Table2 t2这样的旧方法连接表

从Table1 t1加入Table2 t2 On t1.Key = t2.Key --Correct

  • 我认为这里需要一些Left Join。请使用check this link了解Sql Joins

的工作原理

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13951929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档