MySql嵌套视图返回空白或0而不是null值

时间:2017-11-08 08:55:17

标签: mysql select join left-join

当左连接表中有视图时,我有奇怪的结果

用户视图:

CREATE VIEW user_view AS 
    SELECT
        t1.app_user_pk,
        t1.app_user_id,
        t1.app_user_username,
        t1.app_user_email,
        t1.app_user_active,
        t1.app_user_changed,
        t1.app_user_created,
        t2.role_pk,
        t2.role_id
    FROM
        app_user t1
        INNER JOIN role t2 ON t1.role_fk = t2.role_id	

选择

SELECT
    t1.tile_pk,
    t1.tile_id,
    t1.tile_name,
    t3.app_user_pk,
    t3.app_user_id,
    t3.role_pk,
    t3.role_id
  FROM tile t1
      LEFT JOIN user_view t3
      ON t1.app_user_fk = t3.app_user_id

结果:

Select result

你可以看到,在左连接为空后,下一行的0为role_pk而不是正确的数字,而空白为role_id而不是id。

如果我删除user_view并在select中加入角色,那么它将起作用。

由于

1 个答案:

答案 0 :(得分:0)

似乎我的笔记本电脑上只有这个问题。我制作了SQL Fiddle link,结果就是我所期望的(正常)。但是当我在笔记本电脑上运行那个sql小提琴时,我得到了错误的结果。 我使用版本5.7.11的HeidiSql。