Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Połączenie MySQL typu jeden-do-wielu z funkcją Group By zwraca tylko jedną obserwację

Możesz użyć GROUP_CONCAT aby zamienić dane w wielu wierszach w pojedynczy rozdzielany ciąg:

SELECT    a.CommentID, 
          a.Title,
          GROUP_CONCAT(b.TagID ORDER BY b.TagID) AS tags
FROM      CommentTable a
LEFT JOIN TagTable b ON a.CommentID = b.CommentID
GROUP BY  a.CommentID,
          a.Title

W takim przypadku, jeśli komentarz nie ma odpowiedniego znacznika, pole będzie po prostu NULL.

Pokaz SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy naprawdę potrzebne są cudzysłowy wokół tabel i kolumn w zapytaniu MySQL?

  2. Tworzenie zestawu MySQL SET z ciągu znaków

  3. Jak uzyskać wiek z pola DOB w MySQL?

  4. Zastąp tabele MySQL za pomocą AWS Glue

  5. Wysyłanie zapytań do MySQL z klauzulą ​​IN przy użyciu PHP