Visualizzazione dei risultati da 1 a 5 su 5

Discussione: select "incrociata"

  1. #1
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258

    select "incrociata"

    Ho 2 tabelle: ArticoliOrdinati e CaricoArticoli

    La tabella ArticoliOrdinati è popolata dai seguenti valori:

    orderID - productID - qtaordinata
    -- 81 -------- 101 ---------- 1
    -- 82 -------- 105 ---------- 1
    -- 82 -------- 125 ---------- 1

    mentre la tabella CaricoArt è popolata dai seguenti valori:

    productID - Descr1
    -- 101 ------- pere
    -- 105 ------- mele
    -- 125 ------- banane

    Il problema è che vorrei visualizzare l'ordine 82 con l'elenco dei productID con relativa descrizione (Descr1)

    Con il codice postato sotto riesco a visualizzare solo l'ultimo record della tabella caricoart inerente all'orderID

    in pratica se cerco di visualizzare tutti i prodotti dell'ordine 82 mi comare solo il prodotto 125

    So perchè mi compare solo l'ultimo record ma non so come risolvere....

    codice:
    'Scrivo la mia query sql n.1
    sql = "SELECT * FROM ArticoliOrdinati WHERE orderID = " &cod
    
    
    'E creo il recordset
    Set RecArtOrd = Server.CreateObject ("ADODB.Recordset")
    RecArtOrd.Open sql, Conn, 3, 3
    do while not RecArtOrd.eof 
    
    
    productID=RecArtOrd("productID")
    qtaordinata=RecArtOrd("qtaordinata")
    
    %>
    <input name="cod1" type="text" id="cod1" value="<%=productID%>" size="10" />
    <input name="cod1" type="text" id="cod1" value="<%=qtaordinata%>" size="10" />
    
    
    
    </p>
    
    <%
    RecArtOrd.movenext 
    loop
    
    
    'Scrivo la mia query sql n.2
    sqlProdotti = "SELECT * FROM caricoart WHERE productID = " &productID
    
    
    'E creo il recordset
    Set RecProdotti = Server.CreateObject ("ADODB.Recordset")
    RecProdotti.Open sqlProdotti, Conn, 3, 3
    do while not RecProdotti.eof 
    
    Descr1=RecProdotti("Descr1")
    
    %>
    <input name="productID" type="text" id="productID" value="<%=productID%>" size="10" />
    <input name="cod1" type="text" id="cod1" value="<%=Descr1%>" size="10" />
    <%
    RecProdotti.movenext 
    loop
    %>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il secondo ciclo lo devi eseguire dentro al primo.
    Altrimenti lo esegui sempre o solo per l'ultimo productID, quello appunto valorizzato all'ultimo ciclo della parte in alto.

    Roby

  3. #3
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    perfetto, funziona...grazie mille

  4. #4
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    Il problema è che vorrei visualizzare l'ordine 82 con l'elenco dei productID con relativa descrizione (Descr1)
    forse ho capito male la domanda ma non puoi fare tutto in una unica query (supponendo che le tabelle siano in un unico db) con un unico recordset?
    like this
    SELECT articoliordinati.*, caricoart.descr1 FROM articoliordinati LEFT JOIN caricoart ON articoliordinati.productID = caricoart.productID WHERE articoliordinati.orderID = 82
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  5. #5
    Utente di HTML.it L'avatar di Luca1317
    Registrato dal
    Dec 2001
    Messaggi
    1,258
    Originariamente inviato da supermac
    forse ho capito male la domanda
    assolutamente no...infatti mi aspettavo in risposta una soluzione con una select join

    ti ringrazio

    a parte la differenza di semplicità di codice quali sono i vantaggi di usare una select join anzicchè usare 2 select come ho fatto io?

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.