Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [SQL] problema con query complessa

    Io ho una query sql di sto tipo:

    SELECT DISTINCT versions.wfv_id, workflows.name, workflows.description, versions.version, domains.name
    FROM workflows, versions, composition, processors, applications, domains
    WHERE (workflows.wf_id = versions.wf_id) AND (versions.wfv_id = composition.wfv_id) AND (composition.proc_id = processors.proc_id) AND (processors.proc_id = applications.proc_id) AND (applications.dom_id = domains.dom_id) AND processors.flag_wf = 'w' AND domains.dom_id IN (SELECT DISTINCT dom_id FROM user_domain WHERE username = 'admin' )
    GROUP BY versions.wfv_id
    ORDER BY domains.name

    e ottengo una tabella di questo tipo:
    "1";"Conditional Branch Choice";"xxx";"1.0";"DNA studies"
    "2";"Retrieve Cell Lines Descriptions By Name";"yyy";"1.0";"DNA studies"
    "1";"Conditional Branch Choice";"zzz";"1.0";"Protein studies"

    Io pero' vorrei ottenere una roba di questo tipo:
    "1";"Conditional Branch Choice";"xxx";"1.0";"DNA studies,Protein studies"
    "2";"Retrieve Cell Lines Descriptions By Name";"yyy";"1.0";"DNA studies"

    E' possibile?

    Ciao e grazie!


  2. #2
    GROUP BY versions.wfv_id , workflows.name

    e togli il DISTINCT perche' si estende a tutte le voci del SELECT


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Cosi' ottengo
    "1";"Conditional Branch Choice";"xxx";"1.0";"DNA studies"
    "2";"Retrieve Cell Lines Descriptions By Name";"yyy";"1.0";"DNA studies"

    e non:
    "1";"Conditional Branch Choice";"xxx";"1.0";"DNA studies,Protein studies"
    "2";"Retrieve Cell Lines Descriptions By Name";"yyy";"1.0";"DNA studies"



  4. #4
    lo sai tu cosa vuoi, e cosa devi ottenere.... Io non ho la piu' pallida idea. Ti ho solo indicato un modo per ottenere dei risultati univoci.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    aspe... ma ti ho mandato cosa voglio ottenere, nel mio messaggio precedente c'e' sia cosa ottengo con la tua query e cosa invece vorrei ottenere...


  6. #6
    [supersaibal]Originariamente inviato da superpelo
    aspe... ma ti ho mandato cosa voglio ottenere, nel mio messaggio precedente c'e' sia cosa ottengo con la tua query e cosa invece vorrei ottenere...

    [/supersaibal]
    ma io non so che cosa hai nelle tabelle. La loro struttura e quale e' la differenza formale tra le tue scelte.

    Per me sono dati qualunque. Non so in altre parole, perche' deve prendere un dato al posto di un altro.... fondamentale per costruire una query.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    guarda il primo messaggio... ottengo 3 righe... io pero' vorrei fondere due delle tre righe in una, facendo collassare tutti i campi uguali e sommando il contenuto dell'ultimo campo (l'unico diverso per i due record) in un'unico campo che elenca entrambi i valori.

  8. #8
    [supersaibal]Originariamente inviato da superpelo
    guarda il primo messaggio... ottengo 3 righe... io pero' vorrei fondere due delle tre righe in una, facendo collassare tutti i campi uguali e sommando il contenuto dell'ultimo campo (l'unico diverso per i due record) in un'unico campo che elenca entrambi i valori. [/supersaibal]
    non credo lo si possa fare con mysql.

    Quindi si tratta dello stesso campo di un record diverso. Ma se non lo dicevi come lo hai detto ora non lo avrei mai capito. Per ottenere questo potresti fare una tabella temporanea facendo poi l'update del campo sommando la stringa alla precedente, quindi estraendo i dati da questa tabella.

    Oppure in php con una if verifichi i criteri di uguaglianza che credi opportuni e quando corrispondono unisci la stringa corrispondente. Metodo piu' semplice.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.