Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Filtro su più tabelle

  1. #1

    Filtro su più tabelle

    Salve a tutti,

    spesso mi capita di dover filtrare dei dati che sono distribuiti su più tabella, ed è un lavoraccio!

    Esempio: Un'azienda si cancella dal sito. Io devo:
    1. cancellare l'azienda dalla tabella AZIENDE
    2. cancellare tutte le offerte pubblicate dall'azienda nella tabella OFFERTE
    3. aggiornare il campo stato nella tabella candidature dove id_offerta fa parte delle offerte pubblicate dall'azienda

    Per i punti 1,2 poco roba, con un DELETE From ... Where id_azienda="&id_azienda ho risolto ma pe ril punto 3 la cosa si complica.

    La tabella candidature infatti non presenta il campo id_azienda, questa è la sua struttura:
    id data id_offerta id_utente stato

    L'unico riferimento che ho con l'azienda è il campo id_offerta. La mia soluzione (poco pratica) è questa.
    codice:
    ' seleziono dalla tabella offerte tutte le offerte pubblicate dall'azienda che intende cancellarsi
    sql="Select * FROM offerte Where id_azienda="&id_azienda
    set rec=conn.execute(sql)  
    
    do while NOT(rec.eof) 
    id_offerta=rec("id_offerta")
    
    ' seleziono dalla tabella candidature tutte le candidature corrispondenti all'id_offerta appena ricavata
    
    Set rs = Server.CreateObject("ADODB.Recordset")
    sql2="UPDATE candidature SET stato='Offerta cancellata' where id_offerta="&id_offerta
    set rs=conn.execute(sql2)
    
    rec.movenext
    loop
    Non c'è una sintassi unica per fare quello che io ho scritto?
    Grazie tante

  2. #2
    Forse così (oggi sono piuttosto insicuro, scusate ) :
    codice:
    SQL = "UPDATE candidature c, offerte o SET c.stato = 'cancellato' WHERE c.id_offerta = o.id_offerta AND o.id_azienda = " & id_azienda
    Generalmente questo tipo di modifiche le imposto tramite l'evento "ON DELETE", riferito alla chiave esterna. Non so se è possibile farlo con Access, ma se usi un db un po' piu' avanzato dovrebbe essere possibile impostarlo.

    Ciau!
    - Dean

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.