MySQL - 连接表查询为空,这使整个查询为空

Posted

技术标签:

【中文标题】MySQL - 连接表查询为空,这使整个查询为空【英文标题】:MySQL - joined table query is null which makes the whole query null 【发布时间】:2016-11-01 07:22:30 【问题描述】:

我有以下 mysql 查询:

SELECT u.id, u.ap, q.quests
FROM users u
JOIN(              
  SELECT count(quest) as 'quests', user
  FROM active_quests
  WHERE user = 143
) q
ON u.id = q.user
WHERE u.id = 143

我遇到的问题是,有时来自active_quests 表的连接查询将是NULL,因为该特定用户将没有条目。但这导致整个查询变为NULL

用户将始终具有ap 值,但并不总是具有quests 值。

我想做类似SELECT u.id, u.ap, IFNULL(q.quests, 0) 的事情,但它不起作用。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

使用 LEFT JOJN 代替 join 。只有 join 将暗示 inner join 。 Reference

【讨论】:

以上是关于MySQL - 连接表查询为空,这使整个查询为空的主要内容,如果未能解决你的问题,请参考以下文章

MySQL选择左连接为空的行

mysql多表关联查询字段为空

mysql连接查询条件为空

mybatis连接mysql的模糊查询,查询出来为空

JPQL - 连接 - MultipleTables 和空 ResultList

sql 关联查询外键为空的情况