Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    100

    Visualizzare la nazione in base all' ID

    Ciao a tutti,
    devo risolvere questo problema ma mio malgrado non ci riesco proprio, vi spiego:

    Ho 2 tabelle, una chiamata nazioni ed una chiamata case, bene, nella prima sono elencate tutte le nazioni del mondo e nella seconda sono riportate le abitazioni con riferiferimento anzichè al nome della nazione ad un campo che si chiama rif_naz e che è uguale all' id della tabella nazioni.
    Il mio problema è quello di visualizzare in ricerca solo le nazioni in cui sono presenti le case e non tutte quelle presenti nella tabella nazioni.

    se avete consigli o suggerimenti vi aspetto,
    Anticipatamente Grazie a tutti.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,452
    Fai una query di questo tipo sulla tabella delle case
    SELECT DISTINCT ref_naz FROM case

    In questo modo avrai gli id delle nazioni in cui c'è almeno una casa.
    Avendo questi id potrai eseguire una query sulla tabella nazioni per prendere solo quelle di cui hai gli id.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    100
    Ciao e grazie per la risposta, ti chiedo scusa ma non ho capito esattamente come eseguire la query, faccio che postarti la query attuale e ti ringrazio anticipatamente per il tuo aiuto;

    SELECT `case`.`ID_CAS`, `case`.`RIF_NAZ`, `case`.`COMUNITA`, `nazioni`.`ID_NAZ`, `nazioni`.`Nazione`
    FROM `nazioni`
    LEFT JOIN `annuario`.`case` ON `nazioni`.`ID_NAZ` = `case`.`RIF_NAZ`
    ORDER BY `case`.`COMUNITA` ASC, `nazioni`.`Nazione` ASC";

  4. #4
    Prova così:

    codice:
    SELECT c.id_cas, c.rif_naz, c.comunita, n.id_naz, n.nazione FROM nazioni n, case c WHERE c.rif_naz = n.id_naz ORDER BY c.comunita ASC, n.nazione ASC
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    100
    Ciao e grazie per il consiglio ti posto la query che ho corretto secondo le tue indicazioni:

    SELECT `case`.`ID_CAS`, `case`.`RIF_NAZ`, `case`.`COMUNITA`, `nazioni`.`ID_NAZ`, `nazioni`.`Nazione`
    FROM `nazioni` WHERE 'case'.'RIF_NAZ' = 'nazioni'.'ID_NAZ' ORDER BY 'case'.'COMUNITA' ASC 'nazioni'.'Nazione' ASC

    Invece questo è l'errore che ottengo:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.'RIF_NAZ' = 'nazioni'.'ID_NAZ' ORDER BY 'case'.'COMUNITA' ASC 'nazioni'.'Nazion' at line 2


  6. #6
    Originariamente inviato da archivio
    Ciao e grazie per il consiglio ti posto la query che ho corretto secondo le tue indicazioni:

    SELECT `case`.`ID_CAS`, `case`.`RIF_NAZ`, `case`.`COMUNITA`, `nazioni`.`ID_NAZ`, `nazioni`.`Nazione`
    FROM `nazioni` WHERE 'case'.'RIF_NAZ' = 'nazioni'.'ID_NAZ' ORDER BY 'case'.'COMUNITA' ASC 'nazioni'.'Nazione' ASC

    Invece questo è l'errore che ottengo:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.'RIF_NAZ' = 'nazioni'.'ID_NAZ' ORDER BY 'case'.'COMUNITA' ASC 'nazioni'.'Nazion' at line 2

    Eh behh...hai messo gli apici ' invece di ` ovvio!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    100
    Si hai ragione di questa cosa mi sono accorto anche io ed ho corretto:

    SELECT `case`.`ID_CAS`, `case`.`RIF_NAZ`, `case`.`COMUNITA`, `nazioni`.`ID_NAZ`, `nazioni`.`Nazione`
    FROM `nazioni` WHERE `case`.`RIF_NAZ` = `nazioni`.`ID_NAZ` ORDER BY `case`.`COMUNITA` ASC `nazioni`.`Nazione` ASC

    ma mio malgrado mi da sempre un errore:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '`nazioni`.`Nazione` ASC LIMIT 0, 30' at line 2

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    100
    Scusa tanto ma mi chiedevo nel mentre mi arrampico
    non è che per caso i campi con underscore _ al mio xampp 1.7.4 non piaciono ?

  9. #9
    Manca la virgola dopo il primo ASC ...comunque il messaggio di errore è più che esplicativo basta leggerlo per individuare l'errore.

    P.S.
    Utilizzare la query che ti avevo postato io no eh?! Se volete improvvisare almeno metteteci un minimo di attenzione
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    100
    Perdona la mia ignoranza in materia ma utilizzando la query che tu mi hai fornito e cioè:

    SELECT `case`.`ID_CAS`, `case`.`RIF_NAZ`, `case`.`COMUNITA`, `nazioni`.`ID_NAZ`, `nazioni`.`Nazione`
    FROM `nazioni` WHERE `case`.`RIF_NAZ` = `nazioni`.`ID_NAZ` ORDER BY `case`.`COMUNITA` ASC, `nazioni`.`Nazione` ASC

    mi riporta il seguente errore:

    #1054 - Unknown column 'case.ID_CAS' in 'field list'

    che da quel poco che so dovrebbe stare per " non trovato" è questo è davvero strano perchè la seguente query funziona:

    SELECT `case`.`ID_CAS`, `case`.`RIF_NAZ`, `case`.`COMUNITA`, `nazioni`.`ID_NAZ`, `nazioni`.`Nazione`
    FROM `nazioni`
    LEFT JOIN `annuario`.`case` ON `nazioni`.`ID_NAZ` = `case`.`RIF_NAZ`
    ORDER BY `case`.`COMUNITA` ASC, `nazioni`.`Nazione` ASC

    sai spiegarmi il perchè ???

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 © 2024 vBulletin Solutions, Inc. All rights reserved.