JS - запрос MySQL WHERE col массива

Мой запрос выглядит так:

SELECT MAX(x.id) as id,
x.name, x.timestamp, x.balance
FROM sheet x
JOIN
    (SELECT p.name,MAX(id) AS max_id, p.rate
    FROM sheet p GROUP BY p.name) y
ON y.max_id = x.id
GROUP BY x.name

Как лучше всего запрашивать имя только IN (динамически):

array= ['flake', 'shane', 'klar']

Я пробовал что-то подобное с другим состоянием join() напрасно:

WHERE x.name IN (' + array.join() + ')

Этот запрос, вероятно, можно оптимизировать. Не могли бы вы предоставить образцы данных и ожидаемые результаты? Кроме того, какую версию MySQL вы используете?

GMB 08.04.2019 22:20

Бесполезно использовать список полей выбора, поля отсутствуют в предложении group by. MySql не распознает эту ошибку (получает первую строку группы), но в других сценариях (СУБД) ваш запрос неверен.

Joe Taras 08.04.2019 23:18

@ДжоТарас. Не могли бы вы быть более конкретным и сказать мне, что не так в моем основном запросе (перед оператором where)? Я новичок, и запрос, кажется, может удовлетворить потребности, но мне нужно добавить оператор WHERE для массива.

mediaroot 08.04.2019 23:22

@mediaroot: Пожалуйста, добавьте образец данных и желаемый набор результатов (как советовал GMB в своем комментарии), чтобы мы могли вам помочь.

Joe Taras 09.04.2019 01:08
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
34
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуй это :

SELECT MAX(x.id) as id,x.name,x.timestamp,x.balance FROM sheet x JOIN (SELECT p.name,MAX(id) AS max_id,p.rate FROM sheet p GROUP BY p.name) y ON y.max_id = x.id WHERE x.name IN ('flake', 'shane', 'klar') GROUP BY x.name

вы можете это сделать, но желательно использовать подготовленные операторы.

Abdelkarim EL AMEL 08.04.2019 22:28

Другие вопросы по теме