SyntaxError: Missing) после списка аргументов в запросе Mysql - PullRequest
0 голосов
/ 08 мая 2018

Я новичок в node.js. Я успешно подключил базу данных MySQL. Я могу сделать простой запрос выбора, но когда я пытаюсь выполнить запрос с несколькими JOIN, он выдает ошибку «1002 * Отсутствует» после списка аргументов

app.get('/quotes', function (req, res) {
mc.query(`SELECT p.sku,pa.attribute_value as is_seen, pa1.attribute_value as rating,m.projects_unit_id as project_id,m.version,sp.total_sale_price as total_price,
    p.published_on,im.image_url as image, im1.image_url as  pdf_link FROM my_designs m INNER JOIN product p on m.sku=p.sku and p.is_deleted=0 and p.is_published=1 
    INNER JOIN supplier_product sp on sp.product_id=p.product_id and sp.is_deleted=0 
    LEFT JOIN images im on im.`key`=m.sku and im.image_type=36 and im.is_deleted=0 
    LEFT JOIN images im1 on im1.`key` = m.sku and im1.image_type = 15 and im1.is_deleted=0 
    LEFT JOIN product_attributes pa on pa.common_id = p.sku and pa.is_deleted = 0 and pa.attribute_name = 'is_seen' 
    LEFT JOIN product_attributes pa1 on pa1.common_id = p.sku and pa1.is_deleted = 0 and pa1.attribute_name = 'rating' 
    WHERE m.user_id=? and m.is_deleted=0 and m.projects_unit_id is not null ORDER BY p.published_on DESC`, function (error, results, fields) {
    if (error) throw error;
    return res.send({ error: false, data: JSON.stringify(results), message: 'quote list.' });
}); });

Пожалуйста, дайте мне знать, где я иду не так.

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Поскольку вы используете Шаблонные литералы

  • Шаблонные литералы заключены в back-tick (``) (серьезный акцент) символ вместо двойных или одинарных кавычек.
  • Литералы шаблона могут содержать заполнители . Они обозначены знак доллара и фигурные скобки (${expression}).

Вот документация

Итак, вместо im`key` вы должны использовать im.${key}

Итак, ваш код становится,

app.get('/quotes', function (req, res) {

mc.query(`SELECT p.sku,pa.attribute_value as is_seen, pa1.attribute_value as rating,m.projects_unit_id as project_id,m.version,sp.total_sale_price as total_price,
    p.published_on,im.image_url as image, im1.image_url as  pdf_link FROM my_designs m INNER JOIN product p on m.sku=p.sku and p.is_deleted=0 and p.is_published=1 
    INNER JOIN supplier_product sp on sp.product_id=p.product_id and sp.is_deleted=0 
    LEFT JOIN images im on im.${key}=m.sku and im.image_type=36 and im.is_deleted=0 
    LEFT JOIN images im1 on im1.${key} = m.sku and im1.image_type = 15 and im1.is_deleted=0 
    LEFT JOIN product_attributes pa on pa.common_id = p.sku and pa.is_deleted = 0 and pa.attribute_name = 'is_seen' 
    LEFT JOIN product_attributes pa1 on pa1.common_id = p.sku and pa1.is_deleted = 0 and pa1.attribute_name = 'rating' 
    WHERE m.user_id=? and m.is_deleted=0 and m.projects_unit_id is not null ORDER BY p.published_on DESC`, function (error, results, fields) {
    if (error) throw error;
    return res.send({ error: false, data: JSON.stringify(results), message: 'Todos list.' });
    }
);

});

Ps:

Поскольку у вас есть причина, по которой некоторые другие знают, ключ - это reserved слово.

0 голосов
/ 08 мая 2018

Вы пытаетесь использовать шаблонные литералы . Вам нужно использовать $ вокруг ваших переменных, вот как вам нужно составить запрос,

`Select * from Table where key = ${key} and otherkey = ${otherkey}`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...