Visualizzazione risultati 1 fino 4 di 4

Discussione: [MySQL] raggruppare risultato

  1. #1
    Data registrazione
    29-05-2012
    Messaggi
    247

    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 08.08.49

  2. #2
    Data registrazione
    29-05-2012
    Messaggi
    247

    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
    Data registrazione
    29-05-2012
    Messaggi
    247

    Predefinito

    Risolto

    inserito all'inizio

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

    e poi alla fine

    Codice PHP:
    GROUP BY person.PersonID 
    Codice PHP:

    SELECT GROUP_CONCAT
    (CONCAT(CreditRoleSEPARATOR ',') 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
    Data registrazione
    29-05-2012
    Messaggi
    247

    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(CreditRoleSEPARATOR ',') 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 08.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
  •