C# C中的MySQL内部连接语法错误

C# C中的MySQL内部连接语法错误,c#,mysql,C#,Mysql,有人知道为什么会有语法错误吗?我想里面没有保留的词对吧 C命令 cmd.CommandText = "SELECT ordertable._name, ordertable.quantity, food_menu.food_price, beverage_menu.beverage_price" + "FROM ordertable" + "INNER JOIN food_menu ON orde

有人知道为什么会有语法错误吗?我想里面没有保留的词对吧

C命令

cmd.CommandText = "SELECT ordertable._name, ordertable.quantity, food_menu.food_price, beverage_menu.beverage_price" +
                         "FROM ordertable" +
                         "INNER JOIN food_menu ON ordertable._name = food.foodname" +
                         "INNER JOIN beverage_menu ON beverage_menu.beverage_name' = ordertable._name" +
                         "WHERE ordertable.tablenum = '1'";
错误:

您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在ordertable上的“JOIN food”菜单附近。\u name=food.foodnameINNER JOIN 第1行be上的饮料菜单


您缺少空格。目前,您的查询将类似于来自ordertableINNER的“加入食物”菜单。。。。您可以使用多行语法使其更简单

cmd.CommandText = @"SELECT ordertable._name, ordertable.quantity, food_menu.food_price, beverage_menu.beverage_price
                         FROM ordertable
                         INNER JOIN food_menu ON ordertable._name = food_menu.foodname
                         INNER JOIN beverage_menu ON beverage_menu.beverage_name = ordertable._name
                         WHERE ordertable.tablenum = 1";

如果从字符串中删除不必要的连接,则会出现错误,因为您的查询需要一些在连接之前未指定的空格

cmd.CommandText = "SELECT ordertable._name, 
                          ordertable.quantity, 
                          food_menu.food_price,
                          beverage_menu.beverage_price 
                   FROM  ordertable
                   INNER JOIN food_menu 
                         ON ordertable._name = food.foodname
                   INNER JOIN beverage_menu 
                         ON beverage_menu.beverage_name = ordertable._name
                   WHERE ordertable.tablenum = 1"; 

您不需要在饮料菜单上使用单引号。饮料名称。ordertable.tablenum也是字符类型的吗?你还需要在每行的末尾留一个空格。好的。。我发现了问题并解决了它。但为什么我的DGV中没有显示数据?@woo4896这是另一个问题,如果不看到代码和数据库内容,就无法回答。如果你有问题,你可以问另一个问题。我以前也遇到过这个问题。当我将SELECT*从ordertable中放入其中tablenum='1'时,DGV显示数据。但是,当我将SELECT*从ordertable中放入其中tablenum='1',status='1'时,DGV中没有显示任何数据。但我不知道为什么。我在问这个问题之前问过。看这个