Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    [MySQL] -Come gestire Foreign_Key Null

    Ciao a tutti ho un problemino con le relazioni tra tabelle!

    In sostanza io ho 2 tabelle in relazione tra loro tramite una FK che le collega!
    Una cosa del genere (QUESTO E' SOLO UN ESEMPIO NON STO GESTENDO nomi e numeri telefonici)


    Tabella Nomi
    • idNome
    • nome


    Tabella Telefoni
    • idTel
    • numeroTel
    • idNome_Tel


    Il tutto è molto semplice ho creato la FK tra idNome_Tel e idNome ecc ecc

    Il mio problema è che adesso ho necessità (questa cosa è saltata fuori dopo lo sviluppo come aggiornamento) di creare record nella tabella telefoni che possano NON essere collegati alla tabella Nomi!
    Quindi ho cominciato rendendo il campo idNome_Tel accessibile al NULL e tutto funziona anche così...

    Il mio problema ora sta nella query che lanciavo prima per avere tutti i dati su un'unica riga!
    Prima usavo:

    codice:
    SELECT nom.nome,  tel.numeroTel
    FROM nomi nom, telefoni tel
    WHERE nom.idNome=tel.idNome_Tel AND tel.numeroTel='070123456'
    In questo modo trovavo il nome di tutte le persone che avevano quel numero di telefono ottenendo dei record che mi davano numero e nome nella stessa riga!

    Ora però non posso più perchè c'è l'eventualità di che il numero non sia collegato a nessun nome...ho pensato a una condizione if dentro la stringa che applichi il filtro sull'idNome solo se il campo della tab telefoni non è NULL ma non so come si usino o se sia possibile...

    Voi come vi comportereste?

  2. #2
    Dipende da cosa ti e' richiesto.

    Se , un telefono non ha proprietario cosa dovresti restituire?

    Se non hai particolari pretese potresti fare una seconda query che,

    ti restituisca ad esempio idtel WHERE tel.numeroTel='070123456'

    Questa seconda query la lanceresti se la prima query ti ha fatto notare che ce il null su nome.
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    forse ti conviene creare un record finto all'interno della tabella nomi (che potrebbe essere il classico "N.A.") e associare ad esso tutti quei numeri che oggi associ a NULL

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    Si si avevo già pensato a tutta una serie di gabole ma non essendo pratica di SQL pensavo che magari ci potesse essere un modo di fare un'unica stringa!

    Sto usando tutto con vb.net quindi penso che a sto punto farò 2 query...una che mi seleziona il telefono e l'altra che seleziona il contatto solo se il campo FK non è null

  5. #5
    però, scusa, non mi è chiaro cosa vuoi ottenere...

    puoi fare un esempio? il classico "ho questi dati in input, vorrei questi dati 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.