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

Присъединете един ред към няколко реда в друга таблица

Използвайте:

   SELECT x.name,
          GROUP_CONCAT(y.property SEPARATOR ', ')
     FROM PEOPLE x
LEFT JOIN PROPERTIES y ON y.name = x.name
    WHERE x.age > 26
 GROUP BY x.name

Искате MySQL функцията GROUP_CONCAT ( документация ), за да върнете разделен със запетая списък със стойността на PROPERTIES.property.

Използвах LEFT JOIN вместо JOIN, за да включа записи на PEOPLE, които нямат стойност в таблицата PROPERTIES - ако искате само списък с хора със стойности в таблицата PROPERTIES, използвайте:

   SELECT x.name,
          GROUP_CONCAT(y.property SEPARATOR ', ')
     FROM PEOPLE x
     JOIN PROPERTIES y ON y.name = x.name
    WHERE x.age > 26
 GROUP BY x.name

Разбирам, че това е пример, но използването на име е лош избор за референтна цялост, когато вземете предвид колко "Джон Смит" има. Присвояването на user_id, което е уникална стойност на потребител, би било по-добър избор.



  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 порт

  2. Как да проверя дали имейл вече е регистриран?

  3. Laravel Eloquent получава резултати, групирани по дни

  4. Намиране на позиция на числото в низ

  5. java.sql.SQLException:Неправилна стойност на низа:'\xF0\x9F\x91\xBD\xF0\x9F...'