代码之家  ›  专栏  ›  技术社区  ›  moirK

SQL查询中包含子查询属性的语法错误

  •  -1
  • moirK  · 技术社区  · 6 年前

    我正在编写需要三列的sql查询。其中之一是count,它是多个子查询的结果。从..处收到错误“SQL命令未正确结束”。线。我想这是语法错误,和上面的计数部分有关。关于我做错了什么我能得到帮助吗?

    SELECT STUDENTS.NAME AS NAME,
          ADDRESS.CITY AS CITY,
          COUNT(*) AS MY_COUNT FROM (SELECT MYSTATE FROM SOME_TABLE
                                      WHERE SOME_ATTRIBUTE IN 
                                                       (SELECT SUBQUERY_2 = 
                                                                         (SUBQUERY_3))) 
    FROM MYSCHEMA.ADDRESS ADDRESS --Error: SQL command not properly ended
      INNER JOIN SCHEMA.STUDENTS STUDENTS
      ON ADDRESS.ID=STUDENTS.ID
    
    GROUP BY STUDENTS.NAME, STUDENTS.CITY
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Kaval Patel    6 年前

    现在试试这个解决方案:

    SELECT STUDENTS.NAME AS NAME,ADDRESS.CITY AS CITY,
    (SELECT COUNT(*) FROM SOME_TABLE WHERE SOME_ATTRIBUTE IN (SELECT SUBQUERY_2 = (SUBQUERY_3))) AS MY_COUNT 
    FROM MYSCHEMA.ADDRESS ADDRESS 
    INNER JOIN SCHEMA.STUDENTS STUDENTS  ON ADDRESS.ID=STUDENTS.ID
    GROUP BY STUDENTS.NAME, STUDENTS.CITY
    
        2
  •  2
  •   Erwin Smout    6 年前

    我想您的第一个from可能与您希望使用的表/查询有关。如果是这样,那么这样做是错误的。您需要将其转换为标量子查询:

    SELECT STUDENTS.NAME AS NAME,
          ADDRESS.CITY AS CITY,
          (SELECT COUNT(*) FROM (...) WHERE ...) AS MY_COUNT  
    FROM MYSCHEMA.ADDRESS ADDRESS 
    ...
    

    从你给我们的东西中,我们无法猜到内在需要从何而来。这是因为“其中一个是count,这是多个子查询的结果”对于 什么 你在努力实现(计数) 精确地 . 如果你需要帮助,请详细解释 同质光波导 “count是多个子查询的结果”。