Visualizzazione risultati 1 fino 4 di 4

Discussione: [MySQL] raggruppare risultato

  1. #1
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito [MySQL] raggruppare risultato

    Salve a tutti, buona domenica.

    Ho questa query che funziona benissimo,


    Codice PHP:

    SELECT
    person
    .PersonID,
    person.`Name`,
    person.foto,
    creditbooklink.RoleID,
    creditbooklink.PersonID,
    creditbooklink.BookID,
    creditrole.CreditRole,
    book.Title,
    book.ReleaseNo,
    series.Series
    FROM
    book
    INNER JOIN person
    INNER JOIN creditbooklink ON book
    .BookID = creditbooklink.BookID
    AND person.PersonID = creditbooklink.PersonID
    INNER JOIN creditrole ON creditbooklink
    .RoleID = creditrole.CreditRoleID
    INNER JOIN series ON book
    .SeriesID = series.SeriesID
    WHERE
    book
    .BookID = 40

    ma vorrei migliorarla

    ci sono 2 Name con CreditRole

    Guido Nolitta = Soggetto
    Guido Nolitta = Sceneggiatura
    e
    Gallieno Ferri = Disegni
    Gallieno Ferri = Copertina

    quello che vorrei ottenere e' questo

    Guido Nolitta = Soggetto, Sceneggiatura

    Gallieno Ferri = Disegni, Copertina

    Ultima modifica di blackskyisback : 08-02-2021 alle ore 09.08.49

  2. #2
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    ho inserito la funzione GROUP_CONCAT ma il risultato non e' come speravo

    Codice:
    GROUP_CONCAT(CreditRole) as ruolo,
    qualcosa mi sfugge


  3. #3
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    Risolto

    inserito all'inizio

    Codice PHP:
    SELECT GROUP_CONCAT(CONCAT(CreditRole) SEPARATOR ',') AS ruolo,

    e poi alla fine

    Codice PHP:
    GROUP BY person.PersonID
    Codice PHP:

    SELECT GROUP_CONCAT
    (CONCAT(CreditRole) SEPARATOR ',') AS ruolo,
    person.PersonID,
    person.`Name`,
    person.foto,
    creditbooklink.RoleID,
    creditbooklink.PersonID,
    creditbooklink.BookID,
    creditrole.CreditRole,
    book.Title,
    book.ReleaseNo,
    series.Series
    FROM
    book
    INNER JOIN person
    INNER JOIN creditbooklink ON book
    .BookID = creditbooklink.BookID
    AND person.PersonID = creditbooklink.PersonID
    INNER JOIN creditrole ON creditbooklink
    .RoleID = creditrole.CreditRoleID
    INNER JOIN series ON book
    .SeriesID = series.SeriesID
    WHERE
    book
    .BookID = 40
    GROUP BY person
    .PersonID
    spero posso essere utile a qualcuno

    risultato


  4. #4
    blackskyisback non è connesso Utente attivo
    Data registrazione
    29-05-2012
    Messaggi
    452

    Predefinito

    rimane ancora un altro problema, con la funzione COUNT

    ho duplicato la query precedente per effettuare il conteggio, ma..

    Codice PHP:
    SELECT
    GROUP_CONCAT
    (CONCAT(CreditRole) SEPARATOR ',') AS ruolo,
    COUNT(person.PersonID) AS conteggio2,
    person.PersonID,
    person.`Name`,
    person.foto,
    creditbooklink.RoleID,
    creditbooklink.PersonID,
    creditbooklink.BookID,
    creditrole.CreditRole,
    book.Title,
    book.ReleaseNo,
    series.Series
    FROM
    book
    INNER JOIN person
    INNER JOIN creditbooklink ON book
    .BookID = creditbooklink.BookID
    AND person.PersonID = creditbooklink.PersonID
    INNER JOIN creditrole ON creditbooklink
    .RoleID = creditrole.CreditRoleID
    INNER JOIN series ON book
    .SeriesID = series.SeriesID
    WHERE
    book
    .BookID= {$film_id}
    GROUP BY person.PersonID

    Codice PHP:
    <?php echo $num_rows['conteggio2'];?>
    risultato sbagliato , dovrebbe essere 3





    la query eseguita

    Ultima modifica di blackskyisback : 08-02-2021 alle ore 09.50.58

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •