首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL show value即使WHERE子句不为真

SQL show value即使WHERE子句不为真
EN

Stack Overflow用户
提问于 2019-07-15 08:22:17
回答 1查看 44关注 0票数 -2

我有一个总共输出48行的SQL查询,然后我添加了一些表来连接I get one row作为响应,

下面是我的第一个查询,总共输出48行

代码语言:javascript
复制
      SELECT
        users.uid,
        users_roles.rid,
        users.mail,
        users.name,
        dependant.field_dependent_type_tid,
        player_name.field_member_name_value
      FROM
        users
        JOIN users_roles
        JOIN field_data_field_dependent_type AS dependant
        JOIN field_data_field_member_name AS player_name
      WHERE
        users.uid = users_roles.uid
        AND users_roles.rid = 13
        AND dependant.field_dependent_type_tid != 374
        AND dependant.entity_id = users.uid
        AND player_name.entity_id = users.uid

然后当我添加一个手机号码字段时,输出变成了1行

下面是我第二个查询,总共输出1行

代码语言:javascript
复制
    SELECT
      users.uid,
      users_roles.rid,
      users.mail,
      users.name,
      dependant.field_dependent_type_tid,
      player_name.field_member_name_value,
      mobile_number.field_mobile_number_value
    FROM
      users
      JOIN users_roles
      JOIN field_data_field_dependent_type AS dependant
      JOIN field_data_field_member_name AS player_name
      JOIN field_data_field_mobile_number AS mobile_number
    WHERE
      users.uid = users_roles.uid
      AND users_roles.rid = 13
      AND dependant.field_dependent_type_tid != 374
      AND dependant.entity_id = users.uid
      AND player_name.entity_id = users.uid
      AND mobile_number.entity_id = users.uid

正如您在我的查询中看到的,我添加了一个手机号码字段来显示uid等于mobile_number字段的entitiy_id的用户的手机号码,但是48个用户中只有1个注册了他们的手机号码。

我想要做的是显示所有这48行,其中包括具有手机号码的一行用户,

因此,输出将是47个用户的手机号码为空,一个用户的手机号码为空,我该如何在给定的查询示例中做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 08:49:36

将语法更改为使用左连接,并将连接条件与连接放在一起,而不是放在where子句中:

代码语言:javascript
复制
 SELECT
      users.uid,
      users_roles.rid,
      users.mail,
      users.name,
      dependant.field_dependent_type_tid,
      player_name.field_member_name_value,
      mobile_number.field_mobile_number_value
    FROM
      users
      left JOIN users_roles on users.uid = users_roles.uid AND users_roles.rid = 13
      left JOIN field_data_field_dependent_type AS dependant
   on dependant.field_dependent_type_tid != 374
     left  JOIN field_data_field_member_name AS player_name  on dependant.entity_id = users.uid
      left JOIN field_data_field_mobile_number AS mobile_number
 on player_name.entity_id = users.uid and mobile_number.entity_id = users.uid
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57032091

复制
相关文章

相似问题

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