繁体   English   中英

表别名不适用于联接

[英]Table alias not working with join

我在此查询的Unknown column 'sch1.laestab' in 'field list'收到错误Unknown column 'sch1.laestab' in 'field list'

SELECT
    sch1.laestab AS eef_sch_id,
    sch1.sch_name AS sch_name,
    sch1.urn AS sch_dfe,
    foo1.*
FROM tbl_Schools as sch1
JOIN (
    SELECT
    sch2.laestab AS eef_sch2_id,
    sch2.sch_name AS sch2_name,
    sch2.urn AS sch2_dfe
    FROM tbl_SimilarSchools ss2
    JOIN tbl_Schools sch2 ON sch2.laestab = ss2.cluster_id
    WHERE cluster_id = sch1.laestab
    AND cluster_id != school_id
    AND sch2.use_KS4 = '1'
    ORDER BY distance2 ASC
    LIMIT 1
) as foo1

但是如果删除JOIN部分,效果很好。 我的语法有什么问题?

您在这里加入这里有错字:

WHERE cluster_id = sch1.laestab

应该

WHERE cluster_id = sch2.laestab

或者,如果这不是拼写错误,那么您应该将此联接外的检查移到“打开”部分。 像这样

JOIN (
    SELECT
    cluster_id,
    sch2.laestab AS eef_sch2_id,
    sch2.sch_name AS sch2_name,
    sch2.urn AS sch2_dfe
    FROM tbl_SimilarSchools ss2
    JOIN tbl_Schools sch2 ON sch2.laestab = ss2.cluster_id
    WHERE cluster_id != school_id
    AND sch2.use_KS4 = '1'
    ORDER BY distance2 ASC
    LIMIT 1
) as foo1
on foo1.cluster_id = sch1.laestab

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM