2013-11-25 5 views
1

Я пытаюсь написать заявление, чтобы найти имя рецепта с использованием условий через несколько связанных таблиц, но я получаю ошибку синтаксиса, который гласит следующее:Где синтаксическая ошибка в моем соединении нескольких таблиц?

У Вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать вблизи «количество < 700) присоединиться ingredientlist на nutrition.recipeID = ingredientlist.reci» в строке 1.

Вот оператор выбора Я с помощью.

SELECT recipe.name 
    from recipe 
     join nutrition 
      on recipe.recipeID = nutrition.recipeID 
       AND nutrition.unit = "calories" 
       AND nutrition.quantity < 700 
     join ingredientlist 
      on nutrition.recipeID = ingredientlist.recipeID 
     join ingredient 
      on ingredientlist.ingredientID = ingredient.ingredientID 
       AND ingredient.type like "fish"; 
+0

Выглядит нормально. Попробуйте заменить двойные кавычки на одиночные. –

+0

@ypercube Одиночные и двойные кавычки в MySQL одинаковы. Вы также можете махнуть резиновым цыпленком через компьютер. – tadman

+0

SQL-запрос в порядке, скопируйте его и убедитесь, что нет синтаксической ошибки (получилось сообщение о том, что таблица не существует в моей базе данных, но это может отображаться только в том случае, если синтаксис верен) –

ответ

3

В MySQL, двойные и одинарные кавычки обрабатываются одинаково - для определения строковых литералов, но это не является стандартом ANSI, и это только по умолчанию. В стандарте ANSI/ISO двойные кавычки используются для идентификаторов столбцов и таблиц, а не для строковых литералов.

Смотрите документацию MySql:

С ANSI_QUOTES включен, вы не можете использовать двойные кавычки процитировать буквенные строки, так как он интерпретируется как идентификатор.

Смежные вопросы