Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217

    Problema INNER JOIN / LEFT JOIN

    Ragazzi devo creare una istruzione che si occupi di visualizzare tutte le aziende e i referenti iscritti alla newsletter.
    Ecco le tabelle

    AZIENDA : IDaz - nomeaz
    REFERENTE : IDref - nome_cognome - emailref - aziendaID
    ISCRITTI: IDiscritto - riferimento - tipologia

    Il problema sussiste nel fatto che nella tabella RIFERIMENTO sono indicati sia l'IDazienda che l'IDref associati al campo TIPOLOGIA che contiene (A) x azienda e (R) per referente.

    Esiste un modo per creare la JOIN tenendo conto che il campo riferimento contiene valori relativi a due tabelle?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Ragazzi prendendo spunto dalle varie guide ho scritto cosi:


    codice:
    'FROM t1 JOIN (t2 LEFT JOIN t3 ON t2.col3 = t3.col3) ON t1.col1 = t2.col2 
    
    Set rsm = Server.CreateObject("ADODB.Recordset")  
    sql = "SELECT anagrafica_az.IDazienda, anagrafica_az.nome, lista_iscritti.listaID, anagrafica_az.nazione, anagrafica_rf.* " &_ 
          "FROM anagrafica_az INNER JOIN (lista_iscritti INNER JOIN anagrafica_rf ON lista_iscritti.referenteID = anagrafica_rf.IDreferente) " &_ 
          "0N  anagrafica_az.IDazienda = lista_iscritti.aziendaID	 " &_
          " WHERE lista_iscritti.listaID=1 AND ((anagrafica_az.nazione='ITALIA') OR (anagrafica_az.nazione='ITALY'))"
    Ma mi dice:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
    [Microsoft][ODBC Microsoft Access Driver] Syntax error in JOIN operation.
    /provatb.asp, line 23

    Stampo a video la query per controllare i valori

    SELECT anagrafica_az.IDazienda, anagrafica_az.nome, lista_iscritti.listaID, anagrafica_az.nazione FROM anagrafica_az JOIN (lista_iscritti INNER JOIN anagrafica_rf ON lista_iscritti.referenteID = anagrafica_rf.IDreferente) 0N anagrafica_az.IDazienda = lista_iscritti.aziendaID WHERE lista_iscritti.listaID=1 AND ((anagrafica_az.nazione='ITALIA') OR (anagrafica_az.nazione='ITALY'))

    ma mi sembra tutto corretto

  3. #3
    Premesso che non mi è chiaro quello che devi estrarre, ad occhio nella tua queri usi una clausola JOIN che in access non esiste (o usi INNER JOIN o usi LEFT JOIN)


    xxx

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2001
    residenza
    Milano
    Messaggi
    217
    Praticamente il risultato che vorrei ottenere è:

    Visualizzare l'elenco delle AZIENDE e dei REFERENTI iscritte alla NEWSLETTER N.1 e di nazione ITALIA.

    NB. Rendo noto che non tutte le aziende hanno i referenti per cui nella tabella LISTA_ISCRITTI ci sono due campi AZIENDAID e REFERENTE ID.

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.