2017-10-20 136 views
-1
SELECT 
    ISNULL(Name, '-') AS Name, 
    ISNULL(q.QName, '-') AS Education, 
    ISNULL(Grade, '-') AS Grade 
FROM table1 t1 
    LEFT JOIN table2 t2 ON t1.id = t2.id 
    LEFT JOIN (SELECT qname,max (code) FROM table3 group by Code) q ON ed.code = q.code 
WHERE vw.id = 125 

有3条记录表2中,现在我想从表2获得最大的代码,这显示错误最大值

没有列名的的“Q” 2栏指明 无效列名称QName

+1

错误是正确的。您的q中没有代码或QName列。您应该将其更改为 'LEFT JOIN(SELECT MAX(code)AS code FROM table3)AS q ON' 这应该修复缺少的代码列。但我不知道从哪里得到你的QName。关于你的故事的更多信息将会很有用。 – user8527410

+0

检查更新问题 –

+0

'LEFT JOIN(SELECT MAX(code)AS code FROM table3)AS q ON ed.code = q.code'应该修复'invalid column name code'。但是你在这个子查询中没有QName你在'ISNULL(q.QName,' - ')中使用了什么? – user8527410

回答

0
SELECT 
    ISNULL(Name, '-') AS Name, 
    ISNULL(q.QName, '-') AS Education, 
    ISNULL(Grade, '-') AS Grade 
FROM table1 t1 
    LEFT JOIN table2 t2 
     ON t1.id = t2.id 
    LEFT JOIN (SELECT QName, MAX(code) AS code FROM table3 GROUP BY QName) q 
     ON ed.code = q.code 
WHERE vw.id = 125