在哪里条款的未知领域

时间:2017-08-18 10:29:37

标签: mysql

我收到了一个包含两列永久表Quota_ourQuota_theirs的数据库。对于我的每一行如果一行不为空,另一列为空,我需要有一列才能使用我尝试更新其中一个列,一旦记录被交换,我将删除另一个表。  事情是我不是真正进入MySql,但我需要这个数据库用于侧面项目我尝试嵌套选择,因为你无法设置更新从同一个表中的选择获取值,所以我尝试了这个:

UPDATE permanent
SET Quota_our = (
    SELECT q
    FROM (
        SELECT Quota_theirs AS q, CT_NUM AS code_x
        FROM permanent
        WHERE Quota_our = 0 OR Quota_our IS NULL
    )
) AS A
WHERE
    A.code_x = permanent.CT_NUM AND
    permanent.CT_NUM IS NOT NULL

但是我得到了这个错误:

  

where子句中的未知字段'A.code_x'   我已经很好地搜索了任何相关的问题,所有人都无法让我朝着正确的方向前进。

1 个答案:

答案 0 :(得分:1)

我同意,错误信息在这里有点误导。实际上,它应该说<input type="checkbox" [checked]="test.check === 'Y'" value="{{test.roomNum}}" check-list="checkedModel.roomNum">{{assign.roomNum}} ,根本原因会更清楚。

问题是unknown table A字段是在为code_x字段赋值时创建的派生表A中定义的。但是,为了在Quota_our子句中引用字段(井,表),该表必须列在update statementwhere部分中:

table_reference

您可以使用多表UPDATE [LOW_PRIORITY] [IGNORE] table_reference SET assignment_list [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] 语句来解决此问题,从而避免使用子查询:

update