Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464

    Inner Join tra 2 database

    Per cortesia mi aiutate a fare una inner join tra 2 database della stessa cartella?

    ho provato così ma mi da erorre:

    codice HTML:
    sql = "SELECT TABELLA_A.userID, TABELLA_B.USE_ID FROM DATABASE1.TABELLA_A a inner join DATABASE2.TABELLA_B b ON TABELLA_A.userID=TABELLA_B.USE_ID"
    
    Set RS = Conn.Execute(SQL)
    Grazie mille
    Ultima modifica di Partisan75; 07-07-2016 a 16:33

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    592
    nel forum c'è un articolo
    http://forum.html.it/forum/showthread/t-1407033.html
    guarda se ti può essere utile
    ciao
    Vic53

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    si ho visto ma non riesco a capire perche non va e soprattutto non capisco se devo fare le 2 connessioni ai db!

    in questa pagina ho la connessione di cui sotto:

    codice HTML:
    <%
    session("referer")= session("pagina")
    session("pagina")= "http://"&request.ServerVariables("HTTP_HOST")&request.ServerVariables("PATH_INFO")&"?"&request.QueryString()
    Dim Conn
    Dim strConnect
    
    Set Conn = Server.CreateObject("ADODB.Connection")
    StrConnect = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & server.mappath("/mdb-database/Newsletter.mdb") & ";Persist Security Info = False" 
    
    Conn.open StrConnect
    %>
    devo farne un'altra simile anche per il secondo db?
    scusate ma non lho mai fatto e non so come proseguire.
    Grazie in anticipo

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    da una prova fatta tempo fa usando MSSQL PDO,
    ho aperto una sola connessione ad uno dei due db,
    poi nella select ho specificato nomedb.nometabella
    ottenendo i risultati,

    ciò che posso aggiungere è che l'utente e psw davano accesso ad entrambi i db

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    grazie sono riusctito a risolvere così:

    codice HTML:
    <%
                        Dim rs2
                        Set rs2 = Server.CreateObject("ADODB.Recordset")
                        
                        sql2 = "Select UTENTI.Mail FROM [C:\inetpub\wwwroot\mdbdatabase\db1.mdb].UTENTI INNER JOIN Users ON UTENTI.Mail = XXXX"
                        rs2.Open sql2, conn
    
                        %>
    ora devo solo capire come ciclare e tirare fuori dei dati dal secodo db...

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    se ti interessa questo è l'esempio, funziona con entrambe le connection string, con 3 possibilità di lettura del risultato (molto simili se non uguali)
    si, è scritto in php ma ... se non è zuppa è pan bagnato

    Codice PHP:
    $conn = new COM("ADODB.Connection") or die("Cannot start ADO");
    $connStr "Driver={SQL Server};Server=".$dbHOST."; Database=".$dbNAMEa."; Uid=".$dbUSER."; Pwd=".$dbPASS;
    //$connStr = "PROVIDER=SQLOLEDB;SERVER=".$dbHOST."; UID=".$dbUSER."; PWD=".$dbPASS."; DATABASE=".$dbNAMEa; 
    $conn->open($connStr);

    $sql "
    select top 5 1 as id, TOTenergy as valore from "
    .$dbNAMEa.".dbo.inverter_meter
    union
    select top 5 2 as id, caf_lim1 as valore from "
    .$dbNAMEb.".dbo.carform
    "
    ;

    if ( 
    true ) {
      print 
    "<br />-------------------- 1st solution : recordset->open<br />";
      
    $recordset = new COM("ADODB.RecordSet");
      
    $recordset->open($sql$conn3);
      
    //$recordset->movefirst();
      
    while(!$recordset->EOF){
        print
          
    $recordset->Fields['id']->value.
          
    " -- ".
          
    $recordset->Fields['valore']->value.
          
    "<br />";
        
    $recordset->movenext();
      }
      
    $recordset->close();
      
    $recordset null;
      print 
    "<br />";
    }

    if ( 
    true ) {
      print 
    "<br />-------------------- 2nd solution : conn->execute<br />";
      
    $recordset $conn->execute($sql);
      
    //$recordset->movefirst();
      
    while(!$recordset->EOF){
        print
          
    $recordset->Fields['id']->value.
          
    " -- ".
          
    $recordset->Fields['valore']->value.
          
    "<br />";
        
    $recordset->MoveNext();
      }
      
    $recordset->Close();
      
    $recordset null;
      print 
    "<br />";
    }

    if ( 
    true ) {
      print 
    "<br />-------------------- 3rd solution : recordset->open -> rs_array[]<br />";
      
    $recordset = new COM("ADODB.RecordSet");
      
    $recordset->open($sql$conn3);
      
    $selected_fields = array("id""valore");
      
    $rs_array = array();
      while(!
    $recordset->EOF){
        
    $temp_record = array();
        foreach(
    $selected_fields as $key => $fieldname){
          
    $temp_record[$fieldname] = $recordset->Fields[$fieldname]->value;
          print 
    $temp_record[$fieldname]." -- ";
        }
        print 
    "<br />";
        
    $rs_array[] = $temp_record;
        
    $recordset->movenext();
      }
      print 
    "<br />";


  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Risolto grazie a tutti

  8. #8

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Quote Originariamente inviata da optime Visualizza il messaggio
    fa' vedere come
    ciao, ho messo sopra il codice funzionante...

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.