Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. [MySql] Join un po particolare tra 3 tabelle
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • F
      fehu User • ultima modifica di

      Il mio problema è che se non uso il distinct me ne restituisce migliaia perchè conta le righe dei comuni, se uso il distinct sull'id delle province mi restituisce un recordset vuoto

      non avevo pensato ad utilizzare quella funzione, ma penso che il problema rimanga lo stesso di adesso che uso un count()

      non lo so, sarà inesperienza o uno di quei casi limite in cui mysql ricompila la query e fa pasticci

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • A
        andrearufo User Attivo • ultima modifica di

        Mh... Con mysql_affected_rows puoi semplicemente fare un if se uguale a 0 allora stampa il nome!

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • F
          fehu User • ultima modifica di

          ah chiedo scusa pensavo fosse una funzione di mysql, masochisticamente sto utilizzando asp

          non c'è un modo per filtrare i risultati solo tramite query?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • A
            andrearufo User Attivo • ultima modifica di

            Mh... sinceramente non saprei: stai provando a "buttare" le query direttamente in phpMyAdmin per vedere cosa ti rende?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • F
              fehu User • ultima modifica di

              Posso copiare la query che uso (con i nomi di tabella e campi un po diversi)

              SELECT COUNT(  DISTINCT (mappa_province.ID_provincia
              ) ) 
              FROM mappa_province
              INNER  JOIN mappa_comuni ON mappa_comuni.ID_provincia = mappa_province.ID_provincia
              LEFT  JOIN locali ON mappa_comuni.ID_comune = locali.ID_comune
              WHERE locali.ID_comune IS  NULL 
              

              avevo scritto male prima, questa query con il count mi da 103 (il totale delle province), senza mi da l'elenco di tutte e 103 le province

              probabilmente sbaglio qualcosa alla base della query

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • F
                fehu User • ultima modifica di

                mi sono accorto adesso quanto sono stordito
                ho l'id della provincia riportato nella tabella del comune, basta fare una join a due

                SELECT  DISTINCT (mappa_comuni.ID_provincia
                ), locali.id_comune
                FROM mappa_comuni
                LEFT  JOIN locali ON mappa_comuni.ID_comune = locali.ID_comune
                WHERE locali.ID_comune IS  NULL
                

                ma mi restituisce anche questo tutte le province :S

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • Z
                  ziobudda Super User • ultima modifica di

                  Scusa prova a selezionare in una query (A) i comuni che hanno dei locali e poi tramite un NOT IN () trovi i comuni che non hanno locali. Per intenderci (andando un po' alla ceca):

                  SELECT * from provincie p
                  LEFT JOIN comuni c on c.id_comune = p.id_comune and c.id_comune NOT IN (SELECT DISTINCT id_comune from locali)

                  M.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • F
                    fehu User • ultima modifica di

                    Ho provato questa ma mi restituisce sempre tutte le province :S

                    SELECT DISTINCT(ID_provincia) 
                    FROM mappa_comuni c  
                    WHERE c.id_comune NOT IN (SELECT DISTINCT id_comune from locali)
                    
                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • Z
                      ziobudda Super User • ultima modifica di

                      Non è che hai dei comuni senza locali in tutte e 5 le provincie ?

                      M.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • F
                        fehu User • ultima modifica di

                        ah... mi sento un idiota 😢

                        si, ovviamente le province che contengono comuni con locali registrati contengono anche comuni senza locali, quindi per questo me li restituisce sempre tutti
                        ma allora che devo fare? :mmm:

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • Z
                          ziobudda Super User • ultima modifica di

                          ehmm... capire per bene cosa devi fare....

                          M.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          Caricamento altri post
                          Rispondi
                          • Topic risposta
                          Effettua l'accesso per rispondere
                          • Da Vecchi a Nuovi
                          • Da Nuovi a Vecchi
                          • Più Voti