У меня есть таблица А, содержащегоПолучение нескольких значений для того же строки
id | data
1 10
2 20
и таблица В, содержащем
id | a_id | value
1 1 abc
2 1 def
3 2 ghi
столбец A_ID ссылок Таблица B на колонку с идентификатором таблицы А. Я должен получить в прошлом 4 строки данных из таблицы A вместе со своим соответствующим значением из таблицы B. Когда я попытался получить его с использованием этого запроса
SELECT * FROM tableA INNER JOIN tableB ON tableA.id = tableB.id ORDER BY tableA.id DESC LIMIT 4
Я получил дубликат строки с идентификатором 1 из из таблицы А, как
id | data | value
1 10 abc
1 10 def
2 20 ghi
Есть ли способ, так что я могу уменьшить эти дубликаты данных, так что я могу получить одну строку с идентификатором 1 вместе с его двумя значениями?
SELECT *, tableb.value - почему вы выбираете материал дважды – Strawberry
да, вы можете это сделать, но это будет одна строка с разделителем. 'GROUP_CONCAT (tableB.value SEPERATOR ',') ... GROUP BY tableA.id' https://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat – cmorrissey
Если вы изо всех сил пытаетесь использовать квадратные скобки, вы можете обернуть 'GROUP_CONCAT' с помощью' REPLACE() ':' REPLACE (GROUP_CONCAT (CONCAT ('[', tableB.value, ']')), ',', '') as val1' – JNevill