Mysql
 sql >> база данни >  >> RDS >> Mysql

Две маси, с връзка една към много. Как да обединя стойности без дублиращи се редове?

За съжаление не можете да направите това само в MySQL. В резултатния набор не можете да имате редове с различни (брой) колони. Имате нужда от внедрена логика на приложението. Най-близкото, до което можете да стигнете, е:

select m.id, GROUP_CONCAT(voto SEPARATOR ',') 
from messages m 
left join votations v on v.messageID = m.id
group by m.id;

Това ще върне този формат:

ID  GROUP_CONCAT(VOTO SEPARATOR ',')
1   2,5,6
2   2,12,3

Можете да видите, че това работи тук:http://sqlfiddle.com/#!2/241a8/ 3




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция MySQL MOD() – Извършване на модулна операция в MySQL

  2. Грешка (близо до ВКЛ. на позиция 25) при импортиране на таблица за WORDPRESS (Грешка с външен ключ)

  3. Хибернация hbm2ddl.auto стойност по подразбиране

  4. Широко поле за varchar причинява грешка в заявеното преобразуване не се поддържа при използване на openquery с MySQL свързан сървър

  5. Как да коригирам често срещани проблеми с MySQL база данни?