为什么即使我已经声明了别名,Mysql 仍然告诉我有一个未知的列?

西坎德汗

我在这里有这个 mySQL 查询,它应该给我一个用户的所有朋友的数量。但是,我需要进一步过滤它以仅包含由“status = 20”指定的已确认好友请求。当我尝试在 WHERE 子句中执行此操作时,我不断收到以下错误

错误代码:1054。“字段列表”中的“f.status”列未知。

我的查询在这里:

Select
  u.uuid, u.nick,
  count(distinct f.friend_uuid) as number_of_friends, f.status
From
  user u
    Left Outer Join (
      Select user_uuid, friend_uuid from user_friend 
      Union All
      Select friend_uuid, user_uuid from user_friend 
  )  as f
    On u.uuid = f.user_uuid
    WHERE f.status = '20'
 GROUP BY 1,2,4
    HAVING number_of_friends >=10;
阿米特·维尔玛

您的查询有 3 个问题。

  1. 您可以通过这种方式使用别名。创建结果集后将创建别名。结果集将使用 HAVING 子句。因此,have 子句必须在结果集中具有名称。这在以下查询中得到纠正。

  2. 您已经使用了 WHERE f.status = '20'。f 用作左外连接。如果您在 where 子句中使用 ouer join 列,那么它将成为内连接。这在下面的查询中得到纠正。

  3. 带有左外连接的内部查询在选择中没有状态列。因此它抛出错误。

    选择u.uuid, u.nick, count(distinct f.friend_uuid) as number_of_friends, f.status From user u Left Outer Join ( Select user_uuid,friend_uuid, [STATUS_COLUMN REQUIRED] from user_friend Union All Selectfriend_uuid, user_uuid, [STATUS_COLUMN REQUIRED] ] from user_friend ) as f On u.uuid = f.user_uuid and f.status = '20' GROUP BY 1,2,4 HAVING count(distinct f.friend_uuid) >=10;

如果您仍然遇到任何问题,请告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我实现了同样的功能有不同的方法,任何人可以告诉我为什么我的最后一个函数不打印假的?

有人可以告诉我一个简单的PagerSlidingTabStrip工作实现吗?

有人可以告诉我一个好的依赖矩阵是什么样子并指定原因吗?

为什么C告诉我我需要一个指向MSP430函数的指针

我可以让git告诉我一个用户修改过的所有文件吗?

有人可以告诉我为什么这不是一个常数表达式吗?

有人可以告诉我最后一个循环在做什么吗?

对于@SpringBootTest,为什么我没有一个告诉我“配置错误:发现@BootstrapWith的多个声明”?

为什么我不告诉我,Python Threading会运行一个函数?

谁能告诉我为什么媒体查询是在断点之前注册而不是一个即时定位

我已经使用JOptionPane.showOptionDialog显示了一个JDialog,有人可以告诉我如何将其设置为inVisible或Dispose吗?

Linux告诉我正在使用一个串行端口,但是没有使用

为什么Word VBA会告诉我一个对话框已打开?

我想创建一个脚本,告诉我何时发布帖子

已安装Ruby 2.0.0,但有一个错误告诉我我已经安装了1.9.3

为什么我已经声明了Perl却告诉我我的数组未声明?

FXML 一直告诉我有一个空字符串

有人能告诉我为什么这些 JavaScript 代码中的一个有效而另一个无效吗?

为什么我已经声明了“我没有定义”而不是“我”

请告诉我为什么我的输出中有一个“none”

为什么我仍然收到 InputMissmatchException 即使我有一个 catch 语句

为什么我收到错误“无法访问类中声明的私有成员”,即使我已经声明了朋友类

JS:我有一个测试任务,我不知道怎么做。你能告诉我解决这个任务的选项是什么吗?

是否有 VSCode 快捷方式告诉我下一个快捷方式运行什么命令?

“使用未定义类型”错误即使我已经预先声明了类型

如何创建一个列来告诉我一个数字出现的次数?

谁能告诉我为什么 JavaScript 中的 {For} 循环返回所有值,包括数组的第一个元素?

有人能告诉我为什么我在执行后得到一个“空”输出吗?

如何创建一个列来告诉我另一列是否包含字母数字值?