关键字LEFT附近的语法不正确

时间:2013-11-04 15:59:00

标签: c# mysql sql join

你好我在C#中的这个查询有一个语法错误,我不知道是什么原因导致它,当我在Microsoft SQL Server 2012中查询时,我只是得到了数据,任何人都可以帮助我:

        SqlConnection connectie = new SqlConnection("user id=;" +
           "password=;server=;" +
           "Trusted_Connection=false;" +
           "database=; ");

        SqlCommand statsDocenten = new SqlCommand("SELECT enquete_vraag as vraag,AVG(enquete_antwoord_radio) as gemiddelde_antwoord,docent,vak" +
        "FROM ENQUETE_ANTWOORD " +
        "LEFT JOIN KDV " +
        "ON ENQUETE_ANTWOORD.kdv_ID = KDV.kdv_ID " +
        "LEFT JOIN DOCENT " +
        "ON KDV.docent_ID = DOCENT.docent_ID " +
        "LEFT JOIN VAK " +
        "ON KDV.vak_ID = VAK.vak_ID " +
        "LEFT JOIN ENQUETE_VRAAG " +
        "ON ENQUETE_ANTWOORD.enquete_vraag_ID = ENQUETE_VRAAG.enquete_vraag_ID " +
        "WHERE DOCENT.docent_ID = " + docentid + " AND VAK.vak = " + vak + " AND ENQUETE_ANTWOORD.enquete_antwoord_radio != '' " +
        "GROUP BY enquete_vraag,enquete_antwoord_radio,docent,vak", connectie);

我已经在“可能已经有您答案的问题”区域中检查了一堆问题,但我不知道哪个问题和答案会影响我的查询。

2 个答案:

答案 0 :(得分:3)

您在vakFROM之间的第一行错过了一个空格。

你绝对应该参数化你的查询(搜索它,你会发现“如何”和“为什么”)。另外,你可以更好地使用字符串前面的@符号(称为verbatim string),并且你可以使用多行字符串而不必连接它们:

string sql = @"
SELECT enquete_vraag as vraag,AVG(enquete_antwoord_radio) as gemiddelde_antwoord,docent,vak
FROM ENQUETE_ANTWOORD
LEFT JOIN KDV ...etc...";

答案 1 :(得分:1)

"...as gemiddelde_antwoord,docent,vak" + <----- you need a space here
    "FROM ENQUETE_ANTWOORD " +
...

否则这些行读为

as gemiddelde_antwoord,docent,vakFROM ENQUETE_ANTWOORD