Как получить результат «один ко многим», когда запрос MySQL основан на втором отношении в связанной таблице?

#mysql

#mysql

Вопрос:

Я настоящий новичок в MySQL, и я даже не уверен, что вопрос был сформулирован правильно.

В базе данных есть две таблицы: Products и Feedback. Поля в таблице Products — это артикулы и варианты. Для одного артикула может быть несколько вариантов. Поля в таблице обратной связи — это вариант, заголовок, текст. Между Products.variations и Feedback.variations существует отношение «один ко многим».

Целью является запрос, который возвращает заголовок и текст всех отзывов для всех вариантов одного продукта.

Мой код не работает. В приведенном ниже примере мне нужны все отзывы, когда sku=’proda’ .

 SELECT DISTINCT Products.variations, Products.sku, Feedback.variations, Feedback.title, Feedback.text
WHERE Products.sku='proda'
inner join Products.sku ON Products.variations = Feedback.variations 
  

Это ошибка:

1064 — У вас ошибка в синтаксисе SQL; … рядом с ‘ГДЕ Products.sku=’proda’
inner joi’ в строке 2

Ответ №1:

Литерал после INNER JOIN оператора должен быть именем таблицы, а не именем столбца.

 SELECT DISTINCT Products.variations, Products.sku, Feedback.variations, Feedback.title, Feedback.text
FROM Feedback
INNER JOIN Products
ON Products.variations = Feedback.variations
WHERE Products.sku = 'proda'
  

WHERE операторы идут после объединений. SELECT Также требуется FROM .