Aiutatemi a fare una Inner join...

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

    Predefinito Aiutatemi a fare una Inner join...

    devo fare una inner join tra due tabelle e non riesco a ricavarmi l'istruzione sql....

    Allora io ho due tabelle

    1 tabellaLibri con i seguenti campi:

    ID, TItolo, Autore, CodiceLibro, PosizioneLibro

    2 tabellaMovimenti

    Nome, Cognome, Titolo Libro, IdLibro(collegato all'ID della tabella LIbri)


    io voglio fare una inner join tra queste due tabelle...

    e quando mi popolo il datagrid voglio che mi escano tutti i campi della tabellaMovimenti più il campo [Autore], [CodiceLibro], [PosizioneLibro], della tabella movimenti dove idLibro è uguale a ID (della tabellaLibri)


    quale risulta la select???

  2. #2
    kibibyte
    Registrato
    Mar 2001
    Messaggi
    261

    Predefinito Re: Aiutatemi a fare una Inner join...

    Originally posted by mangzeus
    devo fare una inner join tra due tabelle e non riesco a ricavarmi l'istruzione sql....

    Allora io ho due tabelle

    1 tabellaLibri con i seguenti campi:

    ID, TItolo, Autore, CodiceLibro, PosizioneLibro

    2 tabellaMovimenti

    Nome, Cognome, Titolo Libro, IdLibro(collegato all'ID della tabella LIbri)


    io voglio fare una inner join tra queste due tabelle...

    e quando mi popolo il datagrid voglio che mi escano tutti i campi della tabellaMovimenti più il campo [Autore], [CodiceLibro], [PosizioneLibro], della tabella movimenti dove idLibro è uguale a ID (della tabellaLibri)


    quale risulta la select???
    Select distinct tabellaMovimenti.Nome as nome ,tabellaLibri.Titolo as Titolo from tabellaLibri , tabellaMovimenti where tabellaLibri.id = tabellaMovimenti.idLibro

    così dovrebbe funzionare...naturalmente devi aggiungere i campi che ti interessano...io te ne ho messi solo due per farti vedere come si fa...
    spero di esserti stato di aiuto!

    Ciao

  3. #3

    Predefinito Re: Aiutatemi a fare una Inner join...

    Select tabellaLibri.Autore, tabellaLibri.CodiceLibro, tabellaLibri.PosizioneLibro, tabellaMovimenti.* From tabellaLibri Inner Join tabellaMovimenti on tabellaLibri.ID=tabellaMovimenti.IdLibro

  4. #4

    Predefinito Re: Re: Aiutatemi a fare una Inner join...

    Scusa horsemen.
    hai mandato la risposta mentre stavo scrivendo la mia.

  5. #5
    kibibyte
    Registrato
    Mar 2001
    Messaggi
    261

    Predefinito Re: Re: Re: Aiutatemi a fare una Inner join...

    Originally posted by maniac75
    Scusa horsemen.
    hai mandato la risposta mentre stavo scrivendo la mia.
    figurati...

  6. #6

    Predefinito Re: Re: Re: Re: Aiutatemi a fare una Inner join...

    Originally posted by horsemen
    figurati...
    la sql che ho fatto è questa, sto lavorando in vb.net:
    Select TabellaMovimenti.ID, TabellaMovimenti.Cognome, TabellaMovimenti.Nome, TabellaMovimenti.Titolo, TabellaMovimenti.[Data Consegna], TabellaMovimenti.[Data Restituzione], TabellaMovimenti.IdLibro, TabellaMovimenti.Prestito, TabellaLibri.[Autore/Autrice], TabellaLibri.[Codice Libro], TabellaLibri.Posizione From TabellaLibri inner join TabellaMovimenti on TabellaLibri.ID=TabellaMovimenti.IdLibro


    adesso ho un problema:





    adesso ti spiego...io ho un programma nel quale faccio select su tabelle access...finchè sono tabelle sempici, senza inner join posso fare una cosa di questo tipo e impostare il comando delete, insert, update per la tabella automaticamente così..

    Dim CmbBld As New OleDb.OleDbCommandBuilder(da)
    'era per queste due istruzioni che non funzionava...access le richiede



    CmbBld.QuotePrefix = "["
    CmbBld.QuoteSuffix = "]"


    da.DeleteCommand = CmbBld.GetDeleteCommand
    da.InsertCommand = CmbBld.GetInsertCommand
    da.UpdateCommand = CmbBld.GetUpdateCommand

    però questo tipo di espressione non supporta le istruzioni sql con la inner join...e mi da un errrore quando cerco di modificare la tabella, dicendomi che gli serve un commandUpdate valido...

    come faccio ad impostarlo???

  7. #7

    Predefinito Re: Re: Re: Re: Re: Aiutatemi a fare una Inner join...

    Purtroppo non sono esperto di vb.net e di access, comunque se hai problemi col comando Inner Join, l'istruzione equivalente per un collegamento interno è quella che ti ha scritto horsemen, ovvero :
    Select PrimaTabella.*,SecondaTabella.* From PrimaTabella,SecondaTabella Where PrimaTabella.PrimoCampo=SecondaTabella.SecondoCampo.

    L'effetto è identico.
    Se poi hai problemi di aggiornamento dei dati, tieni presente che da Regole SQL, un ResultSet, gestito ad esempio con ADO, proveniente da una Select SQL, può essere modificato solamente se l'istruzione SQL è semplice, ovvero senza Relazioni, Ordinamenti solo se supportati da indici, e altre regole.
    In questo caso, per apportare modifiche devi usare a mano i comandi D.D.L. per la manipolazione dei dati, anche se comunque molti ambienti di sviluppo, tra cui quello che maggiormante uso(Delphi) mettono a disposizione strumenti proprio per questo genere di situazione permettendoti di aggiornare un result set di sola lettura perchè proveniente da una query complessa, e formando poi automaticamente le necessarie istruzioni D.D.L. per aggiornare i dati.

  8. #8

    Predefinito Re: Re: Aiutatemi a fare una Inner join...

    Originally posted by horsemen
    Select distinct tabellaMovimenti.Nome as nome ,tabellaLibri.Titolo as Titolo from tabellaLibri , tabellaMovimenti where tabellaLibri.id = tabellaMovimenti.idLibro

    così dovrebbe funzionare...naturalmente devi aggiungere i campi che ti interessano...io te ne ho messi solo due per farti vedere come si fa...
    spero di esserti stato di aiuto!

    Ciao
    la select che ho fatto è questa...lavoro in vb.net ma non mi funziona
    dice: "errore di sintassi nella posizione From"

    "Select distinct TabellaMovimenti.ID as ID, TabellaMovimenti.Cognome as Cognome, TabellaMovimenti.Nome as Nome, TabellaMovimenti.Titolo as Titolo, TabellaMovimenti.[Data Consegna] as [Data Consegna], TabellaMovimenti.[Data Restituzione] as [Data Restituzione], TabellaMovimenti.Prestito as Prestito, TabellaLibri.[Autore/Autrice] as [Autore/Autrice] From TabellaLibri, TabellaLibri.[Codice Libro] as [Codice Libro] From TabellaLibri, TabellaLibri.Posizione as Posizione From TabellaLibri, TabellaMovimenti where TabellaLibri.ID=TabellaMovimenti.IdLibro",

  9. #9

    Predefinito Re: Re: Re: Aiutatemi a fare una Inner join...

    Hai usato tre "From", e nelle clausule From Hai ripetuto più volte le tabelle e hai anche messo i campi insieme alle tabelle :

    "Select distinct TabellaMovimenti.ID as ID, TabellaMovimenti.Cognome as Cognome, TabellaMovimenti.Nome as Nome, TabellaMovimenti.Titolo as Titolo, TabellaMovimenti.[Data Consegna] as [Data Consegna], TabellaMovimenti.[Data Restituzione] as [Data Restituzione], TabellaMovimenti.Prestito as Prestito, TabellaLibri.[Autore/Autrice] as [Autore/Autrice] From TabellaLibri, TabellaLibri.[Codice Libro] as [Codice Libro] From TabellaLibri, TabellaLibri.Posizione as Posizione From TabellaLibri, TabellaMovimenti where TabellaLibri.ID=TabellaMovimenti.IdLibro",

    corretto :

    .... From TabellaLibri,TabellaMovimenti Where TabellaLibri.ID=TabellaMovimenti.IdLibro

Informazioni Thread

Users Browsing this Thread

Ci sono attualmente 1 utenti che stanno visualizzando questa discussione. (0 utenti e 1 ospiti)

Discussioni simili

  1. Aiutatemi Tutti (forse) Sono Vittima Di Una Truffa!
    By PhantomEVO in forum -= Hardware generico =-
    Risposte: 17
    Ultimo messaggio: 27-01-2006, 12:35
  2. Aiutatemi in una decisione..Isdn o Adsl?
    By Vega in forum -= Internet/Reti e Sicurezza =-
    Risposte: 23
    Ultimo messaggio: 28-09-2001, 17:01
  3. Avete una Radeon64 non Vivo? Allora AIUTATEMI !!!!
    By superdax in forum -= Schede video e acceleratori =-
    Risposte: 20
    Ultimo messaggio: 24-01-2001, 08:49
  4. do you IRC?? Si?e allora /join #madforhardware
    By Mega in forum -= Overclocking e CPU =-
    Risposte: 3
    Ultimo messaggio: 20-12-2000, 19:36
  5. Ragazzi non so più cosa fare... per favore aiutatemi !!!
    By in forum -= Hardware generico =-
    Risposte: 4
    Ultimo messaggio: 11-09-2000, 17:00

Tags

Regole d'invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
nexthardware.com - © 2002-2022