Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Selezione record con altre tabelle

    Ciao a tutti,
    ho un piccolo problema ed il mio cervello si rifiuta di capire quale sia la soluzione giusta ... abbiate pazienza ....

    Ho 3 tabelle, tblArticoli, tblTipologie e tblSottotipologie.
    Tralasciando il discorso del motivo per il quale ho una tabella per le sottotipologie ( è cosi e me la devo tenere... ), sto selezionando un articolo, e nella stessa query cerco di reperire i nomi della tipologia e della sottotipologia.

    codice:
    select tblarticoli.titolo,tblarticoli.fotografia,tblarticoli.tags_redirect, tblTipologia.nomeTipologia, tblsottotipologia.nomeSottoTipologia
    from tblarticoli , tblTipologia, tblsottotipologia
    where tblarticoli.idarticoli=22 AND tblTipologia.idTipologia = tblarticoli.idTipologia AND tblsottotipologia.idSottoTipologia = tblarticoli.idSottoTipologia
    Come vedete nel codice, sto selezionando i campi che mi servono nella tabella TBLARTICOLI e seleziono anche i nomi della TIPOLOGIA e SOTTOTIPOLOGIA.

    Il problema, però, nasce nel momento in cui l'articolo ha una tipologia ma NON una sottotipologia. Fino a quando il nome della sottotipologia esiste, va tutto bene, nel momento in cui l'articolo si riferisce ad una MACROTIPOLOGIA e ha idSottTipologia=0, la query mi risponde 0 risultati.

    Non riesco a capire come risolvere il problema senza aprire e chiudere 2000 recordset ... si può fare con una sola query? Che mi consigliate?

    Grazie!

  2. #2

    Re: Selezione record con altre tabelle

    Originariamente inviato da alemux
    Ciao a tutti,

    codice:
    select tblarticoli.titolo,tblarticoli.fotografia,tblarticoli.tags_redirect, tblTipologia.nomeTipologia, tblsottotipologia.nomeSottoTipologia
    from tblarticoli , tblTipologia, tblsottotipologia
    where tblarticoli.idarticoli=22 AND tblTipologia.idTipologia = tblarticoli.idTipologia AND tblsottotipologia.idSottoTipologia = tblarticoli.idSottoTipologia
    ----------
    Il problema, però, nasce nel momento in cui l'articolo ha una tipologia ma NON una sottotipologia.
    Ciao,
    usa la INNER JOIN per collegare tblarticoli e tblTipologia
    e la LEFT JOIN per per collegare tblarticoli e tblsottotipologia

  3. #3
    Onore a sspintux, evidentemente sbagliavo a scrivere qualcosa digitando la query.
    Posto il risultato corretto, magari può servire a qualcuno...
    codice:
    select tblarticoli.titolo,tblarticoli.fotografia,tblarticoli.tags_redirect , tblTipologia.nomeTipologia, tblsottotipologia.nomeSottoTipologia
    from tblarticoli 
    
    INNER JOIN tbltipologia ON tblArticoli.idTipologia = tbltipologia.idTipologia
    
    LEFT JOIN tblsottotipologia ON tblarticoli.idSottoTipologia = tblsottotipologia.idSottoTipologia
    
    where tblarticoli.idarticoli=1470
    Perfetto il consiglio di differenziare tra INNER e LEFT, effettivamente quando non c'è una riga in tblSottoTipologia mi ritorna un NULL...benissimo !

    Grazie ancora!

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