Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    146

    MYSQL query rapporto uno a molti

    ciao a tutti, lo so che è veramente ridicola come domanda ma non so perchè non mi riesce.....dove sbaglio?

    devo fare una semplicissima query per due tabelle legate da un rapporto uno a molti con id chiave primaria e id intero

    scrivo così:
    SELECT * FROM regione, nazione WHERE idnazione = idrelazione


    dove la tabella regione è la tabella secondaria che dovrebbe farmi visualizzare solo i record con il campo "idrelazione" uguale al campo "idnazione" che è la chiave primaria della tabella nazione....aiutoooooo

  2. #2
    ma sbagli nel senso che ... ?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    146
    scusami ma non ho capito sbaglio in che senso

  4. #4
    dico: perchè non funziona? apparte provare con

    select * from nazione inner join regione on regione.idnazione = nazione.id

    ?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    146
    perdonami forse è perchè sono distrutto ma non ho capito pensavo fosse ironica la tua risposta...... comuqnue sbaglio nel senso che mi dice che il campo idrelazione è ambiguo ......pensavo fosse perchè lo avevo anche nel campo nazione e quindi l'ho tolto ma il risultato non cambia......


    forse ho sbagliato a fare i rapporti in mysql?
    perchè sinceramente ho dei dubbi sui rapporti uno a molti visto che ne esistono due tipi in workbench rapporto uno a molti identificato e non ma non so cosa significhi......

  6. #6
    se tu fai

    select * from tabellaA, tabellaB where ....

    lui ti ritorna tutti i campi di tabellaA e tutti quelli di tabellaB...quindi se tabellaA e tabellaB hanno campi con lo stesso nome, questo ti da errore...quindi dovresti specifricare quali campi vuoi dalle due tabelle, e se hanno lo stesso nome dargli un alias, del tipo

    select
    tabellaA.campo_comune,
    tabellaA.altro_campo,
    tabellaB.campo_comune as tabella_b_campo_comune
    from
    tabellaA
    inner join
    tabellaB
    on
    tabellaA.idtabellab = tabellaB.id


    una cosa del genere
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    146
    risolto sbagliavo proprio a non dare un alias.......a volte quando si è troppo stanchi lavorare non paga.....grazie!!!!!!

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    146

    risolto un bel niente

    SELECT regione.idregione, regione.regione, regione.idrelazione, nazione.idnazione, nazione.nazione. FROM regione INNER JOIN nazione ON regione.idrelazione = nazione.idnazione;

    ecco la query ma mi dà sintassi sbagliata....

  9. #9
    codice:
    SELECT regione.idregione, regione.regione, regione.idrelazione, nazione.idnazione, nazione.nazione. FROM regione INNER JOIN nazione ON regione.idrelazione = nazione.idnazione;
    C'è un punto (.) prima del FROM
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  10. #10
    cmq non potevi darli più complicati i nomi a quei campi:

    nazione.idnazione invece di nazione.id ?
    regione.idrelazione invece di regione.idnazione?
    regione.idregione invece di regione.id?

    sei contorto
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.