mysql - 'on clause' 中的未知列

标签 mysql sql

这个查询对我来说看起来非常正确。查找时发现查询中似乎存在优先级问题。

问题出在这一行 - group_membership_settings.group_id = groups.id

“on 子句”中的未知列groups.id

 SELECT SQL_NO_CACHE `groups`.`name` AS `profile_name`, ( 
        SELECT IF(
          group_membership_settings.max_limit, 
          group_membership_settings.max_limit > ( 
            SELECT COUNT(connection_memberships.id) FROM connection_memberships
            WHERE connection_memberships.type = 'Connection::MenteeMembership' 
            AND connection_memberships.group_id = groups.id
          ), 1) 
        FROM programs 
          INNER JOIN roles ON roles.program_id = programs.id AND roles.name = 'student'
          LEFT JOIN group_membership_settings ON group_membership_settings.group_id = groups.id AND group_membership_settings.role_id = roles.id
        WHERE programs.id = groups.program_id
    ) AS `available_to_join` FROM `groups` 

最佳答案

表(别名)groups 不在其自己定义的范围内。

您只能在本地查询中引用表中的列,即programsrolesgroup_membership_settings

我无法判断您的意图,但您可能还必须加入内部查询中的

关于mysql - 'on clause' 中的未知列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21944884/

相关文章:

php - 在一个学说中插入多个关联数组 native insert() 命令

php - 如何在 PHP 中返回从 MySQL 获取的数组

php - 更新 mysql,新数据从唯一 id 1 开始

MySQL,胶表计数

c# - SQL Scope_Identity 返回 0 或 -1

mysql 查询,选择 distinct/max

mysql - SQL 合并数据并将其转换为列

sql - 填补 SQL Server 中年份序列的空白

sql - sql server中的累计计算

mysql - 在级联删除上似乎不适用于我的数据库