Я думаю, мне нужен намек в каком направлении идти.В продолжение моего другого вопроса я пытаюсь реализовать SQL-запрос для 3 таблиц с MySQL .
Таблица 1: "базовая" информация о продукте
id, productnumber
1,45
Таблица 2: "country_specifics" для каждого идентификатора продукта
id, countrycode,name
1,"DE","Produkt 1"
1,"US","Product 1"
Хорошо,
SELECT B.id,C.name,C.countrycode
FROM base AS B
INNER JOIN country_specifics AS C ON B.id=C.id
WHERE B.id=1 AND C.countrycode='US';
дает мне то, что я хочу:
1,"Product 1","US"
НО:
У меня есть третья таблица:
Таблица 3: «функции» для каждого идентификатора продукта
id,feature
1,"feature 1"
1,"feature 2"
и конечный результат моего запроса должен как-то дополнительно содержать характеристики продукта.Я попробовал это с дополнительным
INNER JOIN features AS F ON b.id=f.id
, но это вернет две строки (и я понимаю почему):
1,"Product 1","US","feature 1"
1,"Product 1","US","feature 2"
, но я думаю, что это не то, что я хочу.То, что я хочу, это своего рода массив для поля компонента:
1, «Продукт 1», «США», «функция 1, функция 2»
в результате.Я знаю (или почти уверен), что в SQL нет массивов, но что ближе к этому?Могу ли я сделать это в 1 запросе?Очевидно, я мог бы просто начать второй запрос, но это лучший вариант?По какому ключевому слову я должен гуглить?
Спасибо за чтение, Маримба
РЕДАКТИРОВАТЬ
Спасибо всем за помощь, правда!
Я просто хотел бы уточнить мой вопрос: мне не обязательно нужен массив или что-то близкое к нему.Я хотел бы понять, какой наилучший (наиболее эффективный, наименее подверженный ошибкам) подход заключается в получении «всех данных для этого продукта».
Если вы скажете мне принять в результате 2 строки и работать с этимэто лучший способ, я сделаю это.Я просто думаю, что когда они разрабатывали SQL, они думали об этой проблеме и имели готовое решение, и я пытаюсь найти это решение.
РЕДАКТИРОВАТЬ 2:
Опять же, я извиняюсь за то, что вводил людей в заблуждение, заставляя их думать, что мне нужна строка, разделенная запятыми.Я попытался проиллюстрировать, какие именно данные я ожидал.
Я ценю указатель на group_concat
, но у меня такое ощущение, что stored procedure
с двумя запросами, как обрисовано в общих чертах jmacinnes и Sachin, является более чистымway.
Спасибо, сообщество stackoverflow.