Visualizzazione risultati 1 fino 1 di 1

Discussione: MySql errore conteggio quesry . . . e altro

  1. #1
    kairos2020 non è connesso Utente giovane
    Data registrazione
    16-04-2020
    Residenza
    Castegnato (BS)
    Messaggi
    62

    Predefinito MySql errore conteggio quesry . . . e altro

    Buongiorno, ho un problema com mysql che non riesco a capire, utilizzo mysql da alcuni anni e sono sempre riuscito a trovare in modo autonomo le soluzioni ai problemi via via incontrati ma questa volta non riesco neppure a comprendere perchè io riceva un errore.
    Ho n tabelle che unisco in una query, la query è composta da circa 10 tabelle. Ecco il problema:

    la query che seleziona i record mi torna 185 record, ovvero tutti i record della tabella principale, la stessa query, cui cambio solo la parte SELECT con la COUNT(*) mi conta 183 record, mi pare una cosa impossibile . . ma succede.
    Inoltre ricevo il messaggio La selezione corrente non contiene un campo unico. , inutile dire che ho controllato le tabelle una per una e tutte hanno il campo utilizzato per la join indicizzato come primary key.

    Allego le due query.
    Codice:
    SELECT iscritti.*, nazioni.nazSta AS nazres, comuni.comCom, province.proDes, province.proSig, regioni.regDes, sesso.sexSex, status_i.stiDes, nazioni_1.nazSta, nazioni_2.nazNaz, tab_ruoli.ruoDes, status_i.stiDes, utenti.uteNom, valuta.valDes, status_u.stuDes
    FROM (((((((((((iscritti INNER JOIN nazioni AS nazioni_1 ON iscritti.iscNan = nazioni_1.nazID) INNER JOIN sesso ON iscritti.iscSex = sesso.sexID) INNER JOIN status_i ON iscritti.iscSta = status_i.stiID) INNER JOIN nazioni ON iscritti.iscNaz = nazioni.nazID) INNER JOIN tab_ruoli ON iscritti.iscRuo = tab_ruoli.ruoID) INNER JOIN nazioni AS nazioni_2 ON iscritti.iscNnz = nazioni_2.nazID) INNER JOIN comuni ON iscritti.iscCom = comuni.comID) INNER JOIN province ON comuni.comPro = province.proID) INNER JOIN regioni ON province.proReg = regioni.regID) INNER JOIN utenti ON iscritti.iscUte = utenti.uteID) INNER JOIN valuta ON iscritti.iscMpa = valuta.valID) INNER JOIN status_u ON iscritti.iscAtt = status_u.stuID;
    e la query con COUNT()
    Codice:
    SELECT COUNT(*) AS CONTA 
    FROM (((((((((((iscritti INNER JOIN nazioni AS nazioni_1 ON iscritti.iscNan = nazioni_1.nazID) INNER JOIN sesso ON iscritti.iscSex = sesso.sexID) INNER JOIN status_i ON iscritti.iscSta = status_i.stiID) INNER JOIN nazioni ON iscritti.iscNaz = nazioni.nazID) INNER JOIN tab_ruoli ON iscritti.iscRuo = tab_ruoli.ruoID) INNER JOIN nazioni AS nazioni_2 ON iscritti.iscNnz = nazioni_2.nazID) INNER JOIN comuni ON iscritti.iscCom = comuni.comID) INNER JOIN province ON comuni.comPro = province.proID) INNER JOIN regioni ON province.proReg = regioni.regID) INNER JOIN utenti ON iscritti.iscUte = utenti.uteID) INNER JOIN valuta ON iscritti.iscMpa = valuta.valID) INNER JOIN status_u ON iscritti.iscAtt = status_u.stuID;
    Ho provato anche uan query più semplice per meglio verificare la situazione :
    due tabelle che sicuramente hanno struttura e dati a posto e che dovrebbero quindi tornare un risultato sicuro:
    Codice:
    SELECT iscritti.*, utenti.uteNom
    FROM iscritti INNER JOIN utenti ON iscritti.iscUte = utenti.uteID;
    Entrambe le tabelle con PK, e ancora lo stessto errore La selezione corrente non contiene un campo unico, ho provato a copiare la query in altre due installazioni mysql di amici, non cambia nulla. Spero qualcuno possa aiutarmi. Grazie
    Ultima modifica di kairos2020 : Ieri alle ore 10.10.53

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •