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

    [MySQL 4] evitare duplicati in un GROUP_CONCAT

    'ngiogno

    ho una domanda facile facile ...

    una query chilometrica restituisce risultati corretti ma a causa di vari GROUP_CONCAT il risultato ottenuto, trasformato in PHP, e' questo:
    codice:
    array(
        array(
            'tb1.column_name'   => 'a',
            'tb2.column_name'   => array('x')
        ),
        array(
            'tb1.column_name'   => 'a',
            'tb2.column_name'   => array('y')
        ),
        array(
            'tb1.column_name'   => 'b',
            'tb2.column_name'   => array('x')
        ),
        array(
            'tb1.column_name'   => 'b',
            'tb2.column_name'   => array('y')
        )
    );
    mentre quello desiderato dovrebbe essere questo:
    codice:
    array(
        array(
            'tb1.column_name'   => 'a',
            'tb2.column_name'   => array(
                'x',
                'y'
            )
        ),
        array(
            'tb1.column_name'   => 'b',
            'tb2.column_name'   => array(
                'x',
                'y'
            )
        ),
    );
    so che magari la query potrebbe essere utile ma e' veramente troppo lunga nonche' generata runtime ... quindi vi chiedo, esiste un'operazione facile facile da schiaffare in query per evitare che risultati di una riga contenente un riferimento da raggruppare (in base a tabella tb1.column_name) vengano mostrati come da esempio codice 1 invece che il desiderato, ovvero il 2?

    grazie

    P.S. tramite una callback PHP si riesce ma l'ideale, per me, sarebbe farlo sul DB dato che sarebbe indubbiamente piu' veloce e dato che la casistica e' frequente.
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  2. #2
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    E' un pò dura così al buio
    sei sicuro di aver fatto in modo corretto il GROUP BY ?
    ...altri 5 anni di purga...

  3. #3
    Originariamente inviato da alpeweb
    E' un pò dura così al buio
    sei sicuro di aver fatto in modo corretto il GROUP BY ?
    credo di si ... ma il problema dei "fields duplicati" è dato da GROUP_CONCAT multipli ... so che è al buio ma sono una decina di tabelle ed una query che se la posto è inutile senza conoscere tabelle e relazioni.

    Grazie lostesso per eventuali consigli
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    su
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Originariamente inviato da andr3a
    su
    qui scrivevi up ... ora su ... ma sarai snob...

    hai postato un quesito che puoi capire solo tu considerati gli omissis....

    sicuramente non otterrai quello che vuoi tu.... considerando anche che cerchi un array multidimensionale da un result set dovrai pur sempre lavorarlo in php ....

    ma se vuoi un risultato "simile" a quello cercato dovresti impostare il DISTINCT sul tb1

    select distinct tb1.campo, group_concat(tb2.campo)

    ma data la complessita' che dai per la query forse non sara' possibile farlo visto che il distinct si estende a tutti i campi elencati in select.

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

  6. #6
    nella query di distinct ce ne sono non so quanti innestati, come di grup contact, if ed altro ancora ... si, aperto il post inutilmente ma c'ho provato. Tanto se posto tutto non posso pretendere che la gente si studi db, realzioni, query e performances per me quindi grazie lostesso e buona serata


    P.S. sono snob ...
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

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.