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

    Select query su tabelle N a N

    Ciao ragazzi,
    sto correndo dietro ad una query che mi sta dando qualche rogna...

    Ho un database così costituito:



    • Tabella "Strutture" con i campi (idStruttura, NomeStruttura)

    idSTruttura NomeStruttura
    1 Hotel pinco
    2 Campeggio caio




    • Tabella "Servizi" con i campi (idServzio, descrizione)

    idServizio Descrizione
    1 Trasporto
    2 Accoglienza



    • Tabella "ServiziAssociati con i campi (idStruttura, idServizio)

    idStruttura idServzio
    1 1
    1 2

    e così via...


    A questo punto la mia richiesta sarebbe mostrare tutte le strutture che hanno tre, quattro, n servizi associati; vorrei che tutti i servizi fossero elencati in un unico record assieme alla struttura...


    Non riesco a capire se sia fattibile o meno... oppure se debba necessariamente lavorare su ogni singola struttura


    È sbagliata forse la progettazione del db?
    Ogni popolo ha il governo che si merita...

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Ciao badaze! Grazie del supporto

    Uhm... ci ho pensato ad una soluzione simile... anche se non mi convince pienamente... credo... perchè in questo caso non ho necessariamente tot di servizi associati a quella struttura; paradossalmente una struttura potrebbe anche non avere nessun servizio associato, questo implicherebbe quindi tirar fuori tutte quelle strutture, anche quelle che non corrispondono ai requisiti e filtrarle da codice...

    Non è possibile con una query riuscire a tirar fuori un record direttamente con i servizi associati?
    Ogni popolo ha il governo che si merita...

  4. #4
    se vuoi estrarre anche le strutture senza servizi ti basta usare una LEFT JOIN invece di una INNER JOIN

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    se vuoi estrarre anche le strutture senza servizi ti basta usare una LEFT JOIN invece di una INNER JOIN
    No aspetta... forse non mi sono spiegato bene...
    Vorrei che nello stesso record venissero mostrate le informazioni in questo modo:


    Struttura1 Servizio1 Servizio2 Servizio3 Servizio4 ...... Servizion


    Non so se sia fattibile come cosa...
    Ogni popolo ha il governo che si merita...

  6. #6
    che db usi? ( avresti già dovuto indicarlo nel titolo, come da regolamento )

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    che db usi? ( avresti già dovuto indicarlo nel titolo, come da regolamento )
    Ops, chiedo scusa, pensavo fosse un problema generico al di là del db usato...

    Ad ogni modo in questo caso si tratta di un MySql.
    Ogni popolo ha il governo che si merita...

  8. #8
    ogni db ha le sue istruzioni per fare questo. per MySql dovrebbe andar bene questa soluzione http://stackoverflow.com/questions/1...oncat-in-mysql

  9. #9
    Utente bannato
    Registrato dal
    Jul 2013
    Messaggi
    290
    sono due cose diverse.
    la richiesta è relativa a una cosa difficile (almeno per me), cioè la "matrice trasposta" (scambiare le righe in colonne)
    la seconda è una banale concatenazione dei dati in una singola colonna (che magari va già bene come soluzione)

  10. #10
    ok, allora prepara un esempio con i dati che hai in input e cosa vorresti in output

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.